Web-based automated product demonstration

ABSTRACT

The innovations described in this disclosure include distinct differences that create a marketing and sales advantage. For convenience, these features are organized into several innovations, but the features described can be combined and implemented in various ways, both within a given innovation and across two or more innovations. Each innovation is unique in itself. Taken as a whole the innovations establish a demonstration category called “Demo Automation” or “Demonstration automation”. The innovations include, but are not limited to, automated self-configuring video content density and sequence based on personalization responses; automated responsive locked document library; sending a product demo that allows you to see who the recipient shared it with; and product demonstration analytics.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. § 119(e) of U.S.Provisional Patent Application No. 61/877,951, entitled “Web-basedProduct Demonstration Automation” filed Sep. 14, 2013, U.S. ProvisionalPatent Application No. 62/006,917, entitled “Web-based ProductDemonstration Automation” filed Jun. 3, 2014, U.S. Provisional PatentApplication No. 62/012,556, entitled “Web-based Product DemonstrationAutomation”, filed Jun. 16, 2014, and U.S. Provisional Application No.62/046,118, entitled “Web-Based Product Demonstration Automation” filedSep. 4, 2014, the entire contents of each of which are incorporatedherein by reference.

COPYRIGHT AUTHORIZATION

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

BACKGROUND

The present disclosure relates to technology for automated productdemonstration.

Sales people often use presentations as means for demonstrating productsto customers. For instance, a presentation may be created using a slideshow presentation program like Microsoft PowerPoint®. However, oncecreated, the content of such presentations is generally singular, fixed,and requires manual adaptation if presented to different audiences. As aresult, such presentations often include content that is irrelevant,uninteresting, or stale for the viewing audience, which results is lowersales. In some cases, sales people and or web marketers may use acurated video-based product demonstration accessible online, such as ona website. However, like the above slide-based presentations, many videodemos on websites are one-size-fits-all, meaning that there is one largevideo that covers several product features or benefits, forcing theviewer to either sit through the video or jump around looking for whatis important to them. In further cases, more complex product videodemonstrations may be offered but even then the viewer must manuallyselect from a list or menu to launch what he or she perceives, but isnot sure to be the desired demonstration.

In web marketing visitors are sometimes encouraged to submit theircontact information in exchange for a document or set of documents whenvisiting a website. For instance, the documents may be inaccessibleuntil a given visitor submits relevant contact information via an onlineform, and the website may then make the documents available for downloador send them via email. However, the documents, or libraries ofdocuments, are not customized to the specific needs of the user orintegrated with other dynamic content being viewed by or demonstrated tothe user. Rather, the documents are static and consist of the samematerial regardless of the user downloading them or other content beingconsumed by or demonstrated to the user in real-time. Thus, thedocuments often do not satisfy the website visitor's unique needs.

During a sales process, a salesperson may send collateral to aprospective customer. For instance, a sales person or group might senddocuments or even links to videos, including links to productdemonstration slides or videos. For instance, current solutions allowyou to send a link to a video (such as sending a YouTube video link) tosomeone. However, these solutions do not reliably indicate when theywatched it, who they shared it with, and what they thought was importantin the video.

Gathering analytics for web activity is common through such services asGoogle Analytics. These types of website analytics allow marketers tolearn information such as answers to questions like “What browser arewebsite visitors using to view my site?” or “How did visitors get to mysite?” However, web analytics technology do NOT answer questions such as“What parts of my product are most important to my customers?”, “Whatmarket segment are my website visitors from?”, or “What objections dowebsite visitors have to my product?” Web analytics are also unable toreliably indicate specific buying interest information about websitevisitors. Currently web marketers try to solve this problem through theuse of surveys served up to users during visits to various websites.However, website visitors have little motivation to complete thesurveys, and the thus often consider the surveys to be a nuisance. Thus,these surveys have low response rates.

SUMMARY

The innovations described in this disclosure include distinctdifferences that create a marketing and sales advantage. Forconvenience, these features are organized into several innovations, butthe features described can be combined and implemented in various ways,both within a given innovation and across two or more innovations. Eachinnovation is unique in itself. Taken as a whole the innovationsestablish a demonstration category called “Demo Automation” or“Demonstration automation”. The innovations include, but are not limitedto, automated self-configuring video content density and sequence basedon personalization responses; automated responsive locked documentlibrary; sending a product demo that allows you to see who the recipientshared it with; and product demonstration analytics.

In one innovative aspect, an example demonstration system candynamically organize not only a custom sequence of videos based on theirresponses, but also the video density, meaning that based on someresponses video content shows more abstracted summary of a featurerather than an in-depth demonstration. The combination of video contentdensity and sequence together create an automated personalized productdemonstration experience that is uniquely new. The system provides a newtype of product demonstration that configures itself in a unique waybased on personalization responses. This improves viewer satisfaction bysaving them time and helping them quickly get to the video content theyneed to see.

In another innovative aspect, when a salesperson sends a demonstrationvideo or other piece of collateral using the demonstration system, thesalesperson can see who they shared it with and how each person it wasshared with interacted with the piece of collateral, enabling thesalesperson to discover and engage the broader buying panel.

In another innovative aspect, an example demonstration system provides anew way to responsively populate a locked document library, whichimproves marketing conversion rates on websites. This innovationresponds to the user's needs by asking the user to respond to certainquestions, thereby increasing the user's desire for the documents.Integration of the locked document library into multimedia presentationscreates a synergistic improvement over having them separate. Unlikecurrent practices that provide a stand-alone form, the integration,interaction, and the way in which the document library responds to theuser's needs make this unique and new.

Other implementations of one or more of these aspects or other aspectsinclude corresponding systems, apparatus, and computer programs,configured to perform the various actions and/or store various datadescribed in association with these aspects. These and otherimplementations, such as various data structures, are encoded ontangible computer storage devices. Numerous additional features may insome cases be included in these and various other implementations, asdiscussed throughout this disclosure. It should be understood that thelanguage used in the present disclosure has been principally selectedfor readability and instructional purposes, and not to limit the scopeof the subject matter disclosed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

This disclosure is illustrated by way of example, and not by way oflimitation in the figures of the accompanying drawings in which likereference numerals are used to refer to similar elements.

FIG. 1 is a block diagram illustrating an example system fordemonstration automation.

FIG. 2 is a block diagram illustrating an example computing system.

FIG. 3 is a flowchart of an example method 300 for generating andproviding a personalized demo for presentation to a user.

FIGS. 4A-4G are graphic representations of example user interfaces forviewing demo-related analytics.

FIG. 5 is a flowchart depicting an example method 500 for curating ademo.

FIGS. 6A-6P depict example user interfaces for curating a demo using thedemonstration system.

FIGS. 7A-7C are graphical representations of example user interfaces forelectronically sharing a demo.

FIGS. 8A-8G are graphical representations of example user interfaces forinteracting with a demo.

FIG. 9 is a graphical representation of an example user interface fordisplaying leads.

FIG. 10 is a graphical representation of an example user logininterface.

FIGS. 11A and 11B are flowcharts of an example method for managing alocked document library.

FIG. 12 is a flowchart of an example method for tracking the sharing ofdemos between users.

FIG. 13 is a graphical representation of a user login interface.

DETAILED DESCRIPTION

The innovative technology disclosed in this application is capable of,for instance, automatically configuring product demonstrations throughvideo content density and sequence based on personalization responses;tracking the sending of product demonstrations in a way that allowsusers to visualize additional downstream viewers in addition to theintended recipients, such as the individuals the intended recipients ofthe product demonstrations shared the product demonstrations with;automatically populate a locked document library with a library ofdocuments that are personalized to the user; provide richproduct-demonstration-related analytics; etc. The technology may includevarious systems, methods, computer program products, interfaces, andother aspects to provide these and other advantages, acts, and/orfunctionality.

By way of illustration and not limitation, using the computing systems,methods, graphical user interfaces, and/or other aspects describedherein, a document owner can submit list of features and descriptions,upload documents associated with each of the features, associate theuploaded documents with correlating segments of the demo (e.g.,multimedia presentation), and publishes the multimedia presentation in acorresponding website or native application for prospects to access theconsume.

By way of further illustration and not limitation, marketing firms ordepartments and sales firms or departments can use the innovativetechnology described herein, such as web-based, computer-implementedsoftware-based product demonstration curation tools, to build aweb-based digital product demonstration that is tailored to each websitevisitor and/or computer application (e.g., mobile app) user. In anon-limiting example, as part of the curation process, a user log into aSaaS (software as a service) server (e.g., via a website, using a mobileapplication, etc.) where, using graphical interfaces associatedtherewith, the user can enter the features and benefits of the productand upload associated videos and documents. Once the user has finishedbuilding the customized automated product demonstration, thedemonstration system described herein may provide to the user embed codefor the user to embed into the user's own website or application so thatthe related automated product demonstration can be accessed by theuser's website or application visitors.

FIG. 1 is a block diagram illustrating an example system 100 fordemonstration automation. The illustrated example system 100 includesclient devices 106 a . . . 106 n, a demo server 116, and third-partyservers 122 a . . . 122 n, which are communicatively coupled via anetwork 102 for interaction with one another. For example, the clientdevices 106 a . . . 106 n may be respectively coupled to the network 102via signal lines 104 a . . . 104 n and may be accessible by users 112 a. . . 112 n (also referred to individually and collectively as 112) asillustrated by lines 110 a . . . 110 n. The demo server 116 may becoupled to the network 102 via signal line 114. The third-party servers122 a . . . 122 n (also referred to individually and collectively as122) may be respectively coupled to the network 102 via signal lines 120a . . . 120 n. The use of the nomenclature “a” and “n” in the referencenumbers indicates that any number of those elements having thatnomenclature may be included in the system 100.

The network 102 may include any number of networks and/or network types.For example, the network 102 may include, but is not limited to, one ormore local area networks (LANs), wide area networks (WANs) (e.g., theInternet), virtual private networks (VPNs), mobile (cellular) networks(e.g., the mobile network 103), wireless wide area network (WWANs),WiMAX® networks, Bluetooth® communication networks, peer-to-peernetworks, other interconnected data paths across which multiple devicesmay communicate, various combinations thereof, etc. Data transmitted bythe network 102 may include packetized data (e.g., Internet Protocol(IP) data packets) that is routed to designated computing devicescoupled to the network 102. In some implementations, the network 102 mayinclude a combination of wired and wireless networking software and/orhardware that interconnects the computing devices of the system 100. Forexample, the network 102 may include packet-switching devices that routethe data packets to the various computing devices based on informationincluded in a header of the data packets.

The mobile network 103 may include a cellular network having distributedradio networks and a hub. In some implementations, the client devices106 a . . . 106 n may send and receive signals to and from atransmission node of the mobile network 103 over one or more of acontrol channel, a voice channel, a data channel, etc. In someimplementations, one or more client devices 106 a . . . 106 n mayconnect to the network 102 via a wireless wide area network (WWAN) ofthe mobile network 103. For instance, the mobile network 103 may routethe network data packets sent and received by the client device 106 a tothe other entities 106 n, 116, and/or 122 etc., that are connected tothe network 102 (e.g., via a the Internet, a VPN, etc.). The mobilenetwork 103 and client devices 106 may use a multiplexing protocol or acombination of multiplexing protocols to communicate including, forexample, FDMA, CDMA, SDMA, WDMA, or any derivative protocols, or thelike, etc. The mobile network 103 and client devices 106 may also employmultiple-input and output (MIMO) channels to increase the datathroughput over the signal lines coupling the mobile network 103 andclient devices 106. The mobile network 103 may be any generation mobilephone network. In some instances, the mobile network 102 maybe a 2G or2.5G GSM, IS-95, etc., network; a 3G UTMS, IS-2000, etc., network; a 4GHSPA+, 3GPP LTE, WiMax™, 5G+, etc., network; etc. In some instances, themobile network 103 may include a backwards-compatible multi-generationalnetwork that supports two or more technology standards.

The client devices 106 a . . . 106 n (also referred to individually andcollectively as 106) include computing systems having data processingand communication capabilities. In some implementations, a client device106 may include a processor (e.g., virtual, physical, etc.), a memory, apower source, a network interface, and/or other software and/or hardwarecomponents, such as a display, graphics processor, wirelesstransceivers, keyboard, camera, sensors, firmware, operating systems,drivers, and/or various physical connection interfaces (e.g., USB, HDMI,etc.), etc. The client devices 106 a . . . 106 n may couple to andcommunicate with one another and the other entities of the system 100via the network 102 using a wireless and/or wired connection.

Examples of client devices 106 may include, but are not limited to,mobile phones (e.g., feature phones, smart phones, etc.), tablets,laptops, desktops, netbooks, server appliances, servers, virtualmachines, TVs, set-top boxes, media streaming devices, portable mediaplayers, navigation devices, personal digital assistants, etc. While twoor more client devices 106 are depicted in FIG. 1, the system 100 mayinclude any number of client devices 106. In addition, the clientdevices 106 a . . . 106 n may be the same or different types ofcomputing systems.

In the depicted implementation, the client devices 106 a . . . 106 nrespectively contain instances 108 a . . . 108 n of a demo application(also referred to individually and collectively as 108). The demoapplication 108 may be storable in a memory (e.g., see FIG. 2) andexecutable by a processor (e.g., see FIG. 2) of a client device 106 toprovide for user interaction, receive user input, present information tothe user via a display (e.g., see FIG. 2), and send data to and receivedata from the other entities of the system 100 via the network 102. In anon-limiting example, various instances of the demo application 108 maybe operable to allow users to curate, share, view, and/or trackanalytics related to product demonstrations, etc., as discussedelsewhere herein, using computer-implemented productdemonstration-related and content provision services providedindividually and/or collectively by the servers 116, and/or 122, etc.,in conjunction with the demo application 108.

In some implementations, the demo application 108 may generate andpresent various user interfaces to perform these acts and/orfunctionality, such as the example graphical user interfaces discussedelsewhere herein, which may in some cases be based at least in part oninformation received from local storage, the demo server 116, and/or oneor more of the third-party servers 122 via the network 102. In someimplementations, the demo application 108 is code operable in a webbrowser, a native application (e.g., mobile app), a combination of both,etc. Additional structure, acts, and/or functionality of the clientdevices 106 and the demo application 108 are described in further detailbelow with reference to at least FIG. 2.

The demo server 116 and/or the third-party servers 122 may include oneor more computing systems having data processing, storing, andcommunication capabilities. For example, these entities 116 and/or 122may include one or more hardware servers, virtual servers, serverarrays, storage devices and/or systems, etc., and/or may be centralizedor distributed/cloud-based. In some implementations, these entities 116and/or 122 may include one or more virtual servers, which operate in ahost server environment and access the physical hardware of the hostserver including, for example, a processor, memory, storage, networkinterfaces, etc., via an abstraction layer (e.g., a virtual machinemanager).

In the depicted implementation, the demo server 116 may include a demoautomation and authoring software (DAAS) module 118. The DAAS module 118may be operable to create, store, track, host, manage, and/or computeanalytics for demos created or accessed by users 112 of the system. TheDAAS module 118 may send data to and receive data from the otherentities of the system including the demo applications 108 andapplication engines 124 a . . . 124 n via the network 102.

The DAAS module and its constituent components may be stored andexecutable by the demo server 118, may distributed across more than onecomputing system, such as the demo server 118, a client device 106,and/or one or more third-party servers 122, and/or may be executable byone or more system 100 entities other than the demo server 118.

In addition to the services embodied by the DAAS Module 118, the DemoServer 116 may provide other network-accessible services, such as thosediscussed elsewhere herein in relation to the third-party servers 122,for example. In addition, while a single demo server 116 is depicted inFIG. 1, it should be understood that one or more demo servers 116 may beincluded. Additional structure, acts, and/or functionality of the demoserver 116 and the DAAS module 118 is further discussed below withreference to at least FIG. 2.

The third-party servers 122 a . . . 122 n, as depicted, respectivelyinclude application engines 124 a . . . 124 n (also referred toindividually and collectively as 124). An application engine 124 mayinclude software, logic, and/or routines operable by a server 122 toprovide various services such as video, music and multimedia hosting,distribution, and sharing; email; social networking; blogging;micro-blogging; photo management; cloud-based data storage and sharing;a combination of one or more of the foregoing services; or any otherservice where users store, retrieve, collaborate, and/or shareinformation.

In some implementations, the demo application 108, DAAS module 118,and/or application engine 124 may require users 112 to be registered toaccess the acts and/or functionality provided by them. For example, toaccess various acts and/or functionality provided by the demoapplication 108, the DAAS module 118, and/or application engine 124,these components may require a user 112 to authenticate his/her identity(e.g., by confirming a valid electronic address). In some instances,these entities 108, 118, and/or 124 may interact with a federatedidentity server (not shown) to register/authenticate users 112. Onceregistered, these entities 108, 118, and/or 124 may require a user 112seeking access to authenticate by inputting credentials in an associateduser interface.

The system 100 illustrated in FIG. 1 is representative of an examplesystem for collaborative design, and it should be understood that avariety of different system environments and configurations arecontemplated and are within the scope of the present disclosure. Forinstance, various functionality may be moved from a server to a client,or vice versa and some implementations may include additional or fewercomputing systems, services, and/or networks, and may implement variousfunctionality client or server-side. Further, various entities of thesystem 100 may be integrated into to a single computing device or systemor additional computing devices or systems, etc.

Additional acts, structure, and/or functionality of at least the clientdevices 106, the demo server 116, the third-party servers 122, and theirconstituent components are described in further detail below.

FIG. 2 is a block diagram of an example computing system 200. Theexample computing system 200 may represent the computer architecture ofa client device 106, a demo server 116, and/or a third-party server 122,depending on the implementation. As depicted, the computing system 200may include a processor 202, a memory 204, a communication unit 208, adata store 210, a display 209, and an input device 211, which may becommunicatively coupled by a communications bus 206. The computingsystem 200 depicted in FIG. 2 is provided by way of example and itshould be understood that it may take other forms and include additionalor fewer components without departing from the scope of the presentdisclosure. For instance, various components of the computing devicesand may be coupled for communication using a variety of communicationprotocols and/or technologies including, for instance, communicationbuses, software communication mechanisms, computer networks, etc.

The processor 202 may execute software instructions by performingvarious input/output, logical, and/or mathematical operations. Theprocessor 202 may have various computing architectures to process datasignals including, for example, a complex instruction set computer(CISC) architecture, a reduced instruction set computer (RISC)architecture, and/or an architecture implementing a combination ofinstruction sets. The processor 202 may be physical and/or virtual, andmay include a single core or plurality of processing units and/or cores.In some implementations, the processor 202 may be capable of generatingand providing electronic display signals to a display device, supportingthe display of images, capturing and transmitting images, performingcomplex tasks including various types of feature extraction andsampling, etc. In some implementations, the processor 202 may be coupledto the memory 204 via the bus 206 to access data and instructionstherefrom and store data therein. The bus 206 may couple the processor202 to the other components of the computing system 200 including, forexample, the memory 204, the communication unit 208, display 209, inputdevice 211, and the data store 210.

The memory 204 may store and provide access to data to the othercomponents of the computing system 200. The memory 204 may be includedin a single computing device or a plurality of computing devices asdiscussed elsewhere herein. In some implementations, the memory 204 maystore instructions and/or data that may be executed by the processor202. For example, as depicted in FIG. 2, the memory 204 may store theDAAS module 118, the demo application 108, and/or the application engine124 depending on the configuration. The memory 204 is also capable ofstoring other instructions and data, including, for example, anoperating system, hardware drivers, other software applications,databases, etc. The memory 204 may be coupled to the bus 206 forcommunication with the processor 202 and the various other components ofcomputing system 200.

The memory 204 includes a non-transitory computer-usable (e.g.,readable, writeable, etc.) medium, which can be any tangible apparatusor device that can contain, store, communicate, propagate or transportinstructions, data, computer programs, software, code, routines, etc.,for processing by or in connection with the processor 202. In someimplementations, the memory 204 may include one or more of volatilememory and non-volatile memory. For example, the memory 204 may include,but is not limited, to one or more of a dynamic random access memory(DRAM) device, a static random access memory (SRAM) device, a discretememory device (e.g., a PROM, FPROM, ROM), a hard disk drive, an opticaldisk drive (CD, DVD, Blue-ray™, etc.). It should be understood that thememory 204 may be a single device or may include multiple types ofdevices and configurations.

The bus 206 can include a communication bus for transferring databetween components of a computing system or between computing systems, anetwork bus system including the network 102 and/or portions thereof, aprocessor mesh, a combination thereof, etc. In some implementations, theDAAS module 118 and various other software operating on the third-partyserver 122 (e.g., an operating system, device drivers, etc.) maycooperate and communicate via a software communication mechanismimplemented in association with the bus 206. The software communicationmechanism can include and/or facilitate, for example, inter-processcommunication, local function or procedure calls, remote procedurecalls, an object broker (e.g., CORBA), direct socket communication(e.g., TCP/IP sockets) among software modules, UDP broadcasts andreceipts, HTTP connections, etc. Further, any or all of thecommunication could be secure (e.g., SSH, HTTPS, etc.).

The communication unit 208 may include one or more interface devices(I/F) for wired and/or wireless connectivity with the network 102 and/orother computing systems. For instance, the communication unit 208 mayinclude, but is not limited to, CAT-type interfaces; wirelesstransceivers for sending and receiving signals using Wi-Fi™, Bluetooth®,IrDA™, Z-Wave™, ZigBee®, cellular communications, and the like, etc.;USB interfaces; various combinations thereof; etc. The communicationunit 208 may include radio transceivers (4G, 3G, 2G, etc.) forcommunication with the mobile network 103, and radio transceivers forWi-Fi™ and close-proximity/personal area (e.g., Bluetooth®, NFC, etc.)connectivity, geo-location transceivers (e.g., GPS) for receiving andproviding location information for the corresponding device, and thelike. The communication unit 208 may connect to and send/receive datavia the mobile network 103, a public IP network of the network 102, aprivate IP network of the network 102, a personal area network (e.g.,Bluetooth® network) 102, etc. For example, the communication unit 208may receive information from various proximity sensors located withinrange, and may be coupled to and provide the information via the bus 206to the processor 202, which may in turn be configured to analyze,process, transmit, and/or display, etc., data based on the information.In some implementations, the communication unit 208 can link theprocessor 202 to the network 102, which may in turn be coupled to otherprocessing systems. The communication unit 208 can provide otherconnections to the network 102 and to other entities of the system 100using various standard network communication protocols, including, forexample, those discussed elsewhere herein.

The data store 210 is an information source for storing and providingaccess to data. In some implementations, the data store 210 may becoupled to the components 202, 204, 208, 209, and/or 211 of thecomputing system 200 via the bus 206 to receive and provide access todata. In some implementations, the data store 210 may store datareceived from other elements 106, 116, and 122 of the system 100, andmay provide data access to these entities. Examples of the types of datastored by the data store 210 may include, but are not limited to, thecontent segments 212, survey definition data 214, survey response data216, demo data 218, documents 220, analytics 222, etc., discussedelsewhere herein.

The data store 210 may be included in the computing system 200 or inanother computing system and/or storage system distinct from but coupledto or accessible by the computing system 200. The data store 210 caninclude one or more non-transitory computer-readable mediums for storingthe data. In some implementations, the data store 210 may beincorporated with the memory 204 or may be distinct therefrom. In someimplementations, the data store 210 may include a database managementsystem (DBMS) operable on the computing system 200. For example, theDBMS could include a structured query language (SQL) DBMS, a NoSQL DMBS,various combinations thereof, etc. In some instances, the DBMS may storedata in multi-dimensional tables comprised of rows and columns, andmanipulate, i.e., insert, query, update and/or delete, rows of datausing programmatic operations.

The display 209 may display electronic images and data output by thecomputing system 200 for presentation to a user 112. The display 209 mayinclude any conventional display device, monitor or screen, including,for example, an organic light-emitting diode (OLED) display, a liquidcrystal display (LCD), etc. In some implementations, the display 209 maybe a touch-screen display capable of receiving input from one or morefingers of a user 112. For example, the display 209 may be a capacitivetouch-screen display capable of detecting and interpreting multiplepoints of contact with the display surface. In some implementations, thecomputing system 200 may include a graphics adapter (not shown) forrendering and outputting the images and data for presentation on display209. The graphics adapter (not shown) may be a separate processingdevice including a separate processor and memory (not shown) or may beintegrated with the processor 202 and memory 204.

The input device 211 may include any device for inputting informationinto the computing system 200. In some implementations, the input device211 may include one or more peripheral devices. For example, the inputdevice 211 may include a keyboard (e.g., a QWERTY keyboard), a pointingdevice (e.g., a mouse or touchpad), microphone, an image/video capturedevice (e.g., camera), etc. In some implementations, the input device211 may include a touch-screen display capable of receiving input fromthe one or more fingers of the user. For instance, the structure and/orfunctionality of the input device 211 and the display 209 may beintegrated, and a user of the computing system 200 may interact with thecomputing system 200 by contacting a surface of the display 209 usingone or more fingers. In this example, the user could interact with anemulated (i.e., virtual or soft) keyboard displayed on the touch-screendisplay 209 by using fingers to contact the display in the keyboardregions.

As depicted, the DAAS module 118 may include a survey module 230, demopersonalization module 232, demo curation module 234, locker module 236,and/or analytics module 238. The components DAAS module 118 may includea survey module 230, demo personalization module 232, demo curationmodule 234, locker module 236, and/or analytics module 238 may becoupled (e.g., via the processor 202) to one another and the othercomponents of the computing system 200 for communication andinteraction. In some implementations, the DAAS module 118, and/or itssub-modules are sets of instructions executable by the processor 202 toprovide their functionality. In some implementations, the DAAS module118 and/or its sub-modules are stored in the memory 204 of the computingsystem 200 and are accessible and executable by the processor 202 toprovide their functionality. In any of the foregoing implementations,the DAAS module 118 and/or its sub-modules may be adapted forcooperation and communication with the processor 202 and othercomponents of the computing system 200.

As depicted in FIG. 2, the DAAS module 118 may include a designmanagement module 230, a feed module 232, a social module 234, anattribution module 236, an analysis module 238, and a search module 240.The components 230, 232, 234, 236, and/or 238 may be communicativelycoupled by the bus 206 and/or the processor 202 to one another and/orthe other components 204, 208, and/or 210 of the computing system 200.In some implementations, one or more of the components 230, 232, 234,236, and/or 238 are sets of instructions executable by the processor 202to provide their acts and/or functionality. In some implementations, oneor more of the components 230, 232, 234, 236, and/or 238 are stored inthe memory 204 of the computing system 200 and are accessible andexecutable by the processor 202 to provide their acts and/orfunctionality. In any of the foregoing implementations, these components230, 232, 234, 236, and/or 238 may be adapted for cooperation andcommunication with the processor 202 and the other components of thecomputing system 200.

The survey module 230 includes computer logic executable by the one ormore processors 202 to manage surveys about product demonstrations, alsoreferred to herein as demos, curated by users using the demonstrationtechnology described herein. In particular, the survey module 230includes computer logic executable to store, retrieve, revise, create,delete, and/or provide the surveys. For clarity, the term productincludes a physical product or service or a virtual product or service.In a non-limiting example, the survey presents the viewer with questionsabout their interests, needs, and profile (whether personal orbusiness), and the responses to the questions are used to personalizethe corresponding demo to the user.

To create a survey, the survey module 230 may include computer logicexecutable to receive survey definition data input by a stakeholderdefining the different aspects of the survey. In some implementations,the input defines the questions along with predefined sets ofuser-selectable answers to be presented to users for completion.

As a further non-limiting example, the stakeholder may input the surveydefinition data using an interface presented by the demo application 108operable by the client device 106, and upon completion, the demoapplication 108 may transmit the survey definition data to the surveymodule 230 (e.g., operating on the demo server 116), and the surveymodule 230 receives, processes, and stores the survey definition data214 (as a survey) in association with the corresponding product in thedata store 210.

When a user requests to view a demo via the demonstration system, thesurvey module 230 is executable to retrieve the corresponding surveyfrom a non-transitory information source, such as the memory 204, thedata store 210, etc., and provides the survey for presentation to theuser for completion (e.g., via the demo application 108). In someimplementations, the demo application 108 may signal the client device106 to transmit a request via the network 102 (e.g., using HTTP oranother suitable protocol) requesting the survey module 230 transmit thecorresponding survey, and the survey module 230 may respond in kind. Insome implementations, the survey may be cached on a local non-transitorystorage device, such as the memory 204, and the client device 106 mayretrieve the survey therefrom and present it to the user via acorresponding interface.

In some implementations, the demonstration system creates a context thatcombines anonymity with the promise of personalized content thatencourages users to respond to the questions and in return increases thelikelihood of honest responses. The demo viewers are presented withsurvey questions in a context that includes the demo viewers remaininganonymous while being provided personalized content based on theresponses to the survey questions. Based on responses given by the demoviewers to the survey questions, the survey module 230 may providepersonalized content and while the analytics module 238 tracks theinteraction. In some instances, the interactions are stored in the datastorage 210 as well as processed by the analytics module 238, asdiscussed elsewhere herein.

By way of further non-limiting example, each question or set ofquestions included in a given survey is related to specific media thatis shown to the viewer in the demo based on the responses given. Theresponses are stored in memory or the data storage 210 which can beaccessed by sales and marketing personnel via the demo application 108in cooperation with the survey module 230 to help effectively market toprospective customers. Furthermore, the surveys include a combination ofsurvey-based questions with related personalized content. This way, thepotential customers are aware that they will get personalized contentthat includes information that most suits their needs. Performinganalytics on this data will allow product marketers to utilize resourceallocation for feature development.

The demo curation module 230 includes computer logic executable by theone or more processors 202 to curate demos. In particular, the democuration module 230 may receive demo data defining a given demo. Theuser may input the demo data using interfaces presented by the demoapplication 108, and the demo application 108 may be communicativelycoupled with the demo curation module 230 to send the demo data to thedemo curation module 230 for processing and storage thereby. The democuration module 230 is coupled to the data store 210 to retrieve and/orstore demo-related data, such as content segments 212, survey definitiondata 210, demo data 218, documents 220, and user profile data 222.

FIG. 5 is a flowchart depicting an example method 500 for curating ademo. In block 502, the DAAS module 118 receives a user authenticationrequest. While not depicted, the DAAS module 118 and authenticationmodule for authenticating users seeking to access the demo creationaspects of the DAAS module 118, and this module may receive the userauthentication request in block 502, process the request, andauthenticate 504 the user using standard authentication protocols. Insome implementations, upon authenticating the user, the authenticationmodule may provide an authentication token to the demo application 118establishing the user's identity.

In block 506, responsive to the user being authenticated, the democuration module 236 collects demo metadata and configuration data fromthe user. In some implementations, the demo application 108 presentsforms to the curating user requesting the user input the configurationdata. Non-limiting examples of configuration data include administrativeinformation and metadata, such as a title, description, and logo for thedemo, an introductory video for the demo, contact information forcontacting a demo stakeholder, calls to action, any product offersand/or incentives, theme configuration data, and analytics configurationdata and marketing data, etc.

In block 508, the demo curation module 234 provides a set of forms forpresentation to the user creating the demo for completion. For example,in block 508, for each feature of the product to be demonstrated, thedemo curation module 234 provides a form to the demo application 108 forcompletion by the user, and in block 510, the demo curation module 234receives form data (demo data) which includes the user-submittedinformation about that feature of the product.

As a further example, the form is rendered and presented to the user bythe demo application 108, and responsive thereto, the user completes andsubmits the form, and the demo application 108 provides the demo datainput by the user for that feature back to the demo curation module 234for processing and/or storage. Non-limiting examples of the differentforms and type of information that can be input by the user aredescribed with reference to at least FIGS. 6A-6N, although should beunderstood that any information applicable to the demo may be input andsubmitted as demo data to the demo curation module 234, and the democuration module 234 is configured to process that informationaccordingly.

In block 512, upon receiving the demo data (incrementally, in bulk,etc.), the demo curation module 234 processes the demo data according tothe future to which it corresponds and stores it in block 514accordingly in the data store 210, as discussed elsewhere herein. Uponcompletion of the demo, the demo curation module 234, and generate inblock 516 and provide in block 518 the embed code for presentation tothe user, which the user can use to embed the demo in anotherapplication, such as website associated with the product beingdemonstrated.

By way of further illustration and not limitation, the method 500 isadvantageous as it allows a stakeholder to easily create a dynamic demothat is easily customizable in real-time to differing needs of thestakeholder's potential customers. For example, the stakeholder logsinto the demonstration system through an application interface (e.g., aweb interface), selects a button to create a new product demo, fills outonline forms for demo properties, adds custom questions forpersonalization survey, uploads a short summary video and a longerin-depth video for each feature (e.g., topic), finishes creating thedemo and embeds the demo into a website he/she administers using embedcode provided by the demonstration system, which allows thestakeholder's customers to view the demo via the website, as discussedelsewhere herein.

FIGS. 6A-6N depict example user interfaces for curating a demo using thedemonstration system. In FIG. 6A, the interface 600 includes a button602 selectable by a user, such as a sales person, marketer, etc., toinitiate the creation of a new demo. In response to selecting the button602, the demo application 108 presents a demo creation wizard. Examplesinterfaces for the demo creation wizard are depicted in FIGS. 6B-6N. Theinterface 600 also includes a list of previously created demosassociated with the user along with options for previewing, sending,copying, editing, and deleting the demos. In some implementations, auser may create a new demo based on an existing demo by selecting a copyoption 606.

In FIG. 6B, the interface 610 includes a form having a progress region611 indicating the user's progress in creating the demo and fields forinputting information about a certain aspect of the demo. The progressregion 611 provides a map of the curation process and allows the user tojump back and forth between the different steps/aspects (e.g., byselecting the corresponding circle in the progress region). In thiscase, the aspect associated with the form is general information aboutthe demo and the form includes fields for inputting metadata, such asbut not limited to a title field 612 and a description field 613. Theinterface 610 also includes a help region 614 including helpful adviceon how best to complete the form, a save and exit button 615 selectableby the user to save the demo so the user can return later to completeit, and a continue button 616 to continue to the next aspect of thedemo.

In FIG. 6C, the interface 618 includes the progress region 611indicating the user has advanced to the form for the next aspect, whichis to inform prospects about how to contact the user regarding the demo.The interface 618 includes corresponding form fields, such as a phonefield 619 and a live chat link 620, which the user may populate withcorresponding information. It should be understood that different and/oradditional fields for other contact information may also be included. Inaddition, profile information from the user's user profile stored in thedata storage 210, such as an email address and personal or businessinformation about the user or other points of contact may also beretrieved and provided to prospects when the aspect associated with thisform is presented to a prospect. The interface 618 also includes thehelp field 614, the save and exit button 615, a back button 621selectable by the user to return to the previous step, and the continuebutton 616.

In FIG. 6D, the interface 623 includes the progress region 611indicating the user has advanced to the form for the next aspect, whichis an introduction video about the product being demonstrated. Theinterface 620 includes a button 624 selectable by the user to provide adialog for selecting a video file to use as the introduction video. Insome implementations, selecting the select file button 624 results inthe demo application 108 presenting a file selection dialog displayingthe local and/or remote file(s) available to the user. In someinstances, the user may not only select video documents from a filesystem of the client device, but may select video documents hostedremotely, such as on a network file system, a video service hosted by athird party server 122 and embodied by a third-party applicationengineer 124 (e.g., YouTube™), or any other suitable information source.In these instances, in response to the completion of the selection ofthe video document(s) by the user, the demo application 108 initiatesthe uploading of the video document(s) to the computing system hostingthe demo and corresponding content segments 212, such as the demo server116 or a third-party server 122 from the source location of the file,whether it be local or remote. This computing system may receive thevideo document(s) and store them as content segment(s) 212 in the datastore 210 for later access and/or retrieval as discussed elsewhereherein.

The interface 623 also includes the help field 614, the save and exitbutton 615, the back button 621, and the continue button 616.

In FIG. 6E, the interface 626 includes the progress region 611indicating the user has advanced to the form for indicating a logo imagefor the demo. As with the interface 623 in FIG. 6D, the interface 626includes a button 627 selectable by the user to provide a dialog forselecting, in this case, an image file to use as the logo for the demo.The process for selecting the file, and the storage thereof in the datastore 210, is substantially the same as in FIG. 6D and will not berepeated here for brevity. The interface 623 also includes the helpfield 614, the save and exit button 615, the back button 621, and thecontinue button 616.

As with the interface 623 in FIG. 6D, the interface 626 includes abutton 627 selectable by the user to provide a dialog for selecting, inthis case, an image file to use as the logo for the demo. The processfor selecting the file, and the storage thereof in the data store 210,is substantially the same as in FIG. 6D and will not be repeated herefor brevity. The interface 623 also includes the help field 614, thesave and exit button 615, the back button 621, and the continue button616.

In FIG. 6F, the interface 629 includes the progress region 611indicating the user has advanced to the form for indicating the specificfeatures (e.g., benefits, etc.) covered by the demo. The interfaceincludes an add new button 630 the help field 614, a more field 631including additional resources associated with the form, the save andexit button 615, the back button 621, and the continue button 616. Thead new button 630 is selectable by the user to display the dialogue 632depicted in FIG. 6G. The dialogue 632 includes various elements fordefining the new feature, such as but not limited to the title field634, the description field 635, and menu options 633, such as cancel andsave options. The user may input a title for the feature in the titlefield 634, and description of the feature in the description field 635.By selecting the save option in the menu options, the information inputby the user about the new feature is saved by the demo application 108.The more field 631 includes additional resources for the user, such as alink to preview what the interface for new feature looks like.

In FIG. 6H, the interface 638 includes the progress region 611indicating the user has advanced to the form for providing resources forthe features added using the interface 629, as described in FIGS. 6F and6G. This interface includes a resource indication region 639, the helpfield 614, the more field 631, the save and exit button 615, the backbutton 621, and the continue button 616. The resource indication region639 includes options selectable by the user to add various resourcesrelated to each of the newly added features for consumption by theviewers of the demo. For a given feature, the user may input more thanone resource. In some implementations, the resources for a given featureinput by the user and be complementary to one another or mutuallyexclusive. For example, one resource may be directed to a certain typeof audience, and another resource may be directed to another type ofaudience. In a further example, a resource may complement anotherresource. For example, the user may input a document complementing avideo also inputted by the user. The document may then be placed in adocument locker during playback of the demo to a prospect, as discussedelsewhere herein. Numerous other variations as to the mix, length, andsubject matter of the resources are also possible and contemplated.

In the depicted implementation, for the feature of cruise control, theuser may input a long video about the cruise control feature byselecting the long video button 639 a and a short video about the cruisecontrol feature by selecting the short video button 639 b. The user mayalso input one or supplemental documents related to the feature (e.g.,articles about the feature, digital photos of the feature, etc.) byselecting the related document button 639 c. Then, on playback of thedemo, the demo personalization module 232 (e.g., see FIG. 2) isexecutable to select the appropriate video based on the survey responsecompleted by the viewing user (e.g., the prospect) and presentcorresponding related documents in the document locker, as discussedelsewhere herein.

In FIG. 6I, the interface 640 includes the progress region 611indicating the user has advanced to the form for calling the viewer toaction. The interface includes an action region 642 having elements 642a for selecting predefined action options to be presented to a viewer ofthe demo, such as but not limited to, start a free trial, contact me,buy now, and the custom button that the user creating the demo maycustomize to his or her needs. The action region 642 also includes aselector 642 b for selecting where to place the call to action pagewithin the demo. The demo application 108 may transmit democonfiguration data indicating ordering information for where to placethe call to action page within the demo when creating a personalizeddemo for a user (e.g., prospect).

In FIG. 6J, the interface 645 includes the progress region 611indicating the user has advanced to the form for inputting an offer inassociation with the buy now action element 642 a in FIG. 6I. Forexample, if a prospect selects the buy now option while viewing thedemo, the demo application 108 will present the offer input in the formdepicted in FIG. 6J. As depicted, the interface 645 includes elementsfor inputting and formatting a textual description of the offer shouldbe understood that the offer can include graphics and other content and,while not depicted, the interface may provide corresponding elements forinputting such content.

In FIG. 6K, the interface 647 includes the progress region 611indicating the user has advanced to the form for configuring objectionsthat a viewer might have when viewing the demo. The interface 647includes an add new button 648, the help field 614, the save and exitbutton 615, the back button 621, and the continue button 616. The ad newbutton 648 is selectable by the user to display an input field fordefining the objection type. Any number of objection types may beconfigured using the add new button 648. In some implementations, theuser may select to omit the objections page in the demo (e.g., byselecting a corresponding checkbox).

In FIG. 6L, the interface 650 includes the progress region 611indicating the user has advanced to the form for configuring the visualtheme for the demo. The interface 650 includes theme selection region651 including various preconfigured theme options that can be applied tothe demo, and a color options 652 region for configuring colors fordifferent elements of the visual theme (e.g., primary color, secondarycolor, button color, etc.). The interface 623 also includes the helpfield 614, the save and exit button 615, the back button 621, and thecontinue button 616.

In FIG. 6M, the interface 650 includes the progress region 611indicating the user has advanced to the form for testing the demo asconfigured in the previous steps. The interface 650 includes a buttonselectable by the user to watch the demo, and upon doing so, return toany prior steps to revise the demo if necessary. Upon selecting thebutton 656, the demo application 108 may request the demopersonalization module 232 generate and provide the demo data file tothe demo application 108 for rendering to the user in an interfaceincluding options for the user to scrub, pause, etc., as discussedelsewhere herein.

In FIG. 6N, the interface 660 includes the progress region 611indicating the user has completed the demo and advanced to the form forpublishing the demo. The interface 650 also includes a button 661selectable initiate sending the demo to one or more prospects, asdiscussed elsewhere herein, a selector 662 for selecting which analyticsengine to use to track web analytics for the demo and a correspondingfield 663 for inputting identifying information associated with theanalytics engine, and marketing information for advertising the demo,such as advertising copy-related information (e.g., Google Adwords™information such as a conversion ID and a conversion label using guilds664 and 665).

The demo data input into the example interfaces described in referenceto FIGS. 6A-6N, when submitted, is transmitted in a request by the demoapplication 108 to the demo curation module 234 for processing andstorage thereby. The demo data includes information about each featureof the demo and the demo curation module 234 may process the data foreach of these features and store them in association with those featuresin the data store 210. For example, the demo curation module 234 maystore the content segments 212 uploaded via the interface 638 in thedata store 210 in association with the features to which those contentsegments 212 correspond. The demo curation module 234 may store anydocuments uploaded using the interface 238 as documents 220 inassociation with the features to which those documents 220 correspond.These documents 220 may then be used in conjunction with the lockeddocument library feature discussed elsewhere herein. In addition, in themetadata, options, descriptors, configuration data, and otherinformation, may be stored as demo data 218 in the data store inassociation with the demo and the aspects of the demo to which theycorrespond.

The demo personalization module 232 includes computer logic executableby the one or more processors 202 to personalize a demo to surveyresponse data 216 input by the user in response to being presented witha survey. Each product has a unique set of features (e.g., benefits,topics, etc.) that can be covered by corresponding demo. These featuresare embodied by content segments 212 stored in the data store 210. Insome implementations, a given feature may be explained at differentdensity levels (in different levels of detail). As a result, or moreinstances of a content segment 212 having differing levels of detail maybe stored in the data store.

A demo is embodied by a data file dynamically customized and renderedfor presentation (audio, visual, sensory, etc.) to the user. Tocustomize a given demo data file for a particular product to aparticular user, the demo personalization module 232 includes computerlogic executable to retrieve user-submitted responses to a survey aboutthe product from a non-transitory information source, such as the memory204 and/or the data store 210, and uses the responses to determine whichcontent segments 212 to generate the demo data file with. Stated anotherway, the data store 210 may store a library of content segments 212 foreach product, and the demo personalization module 232 includes computerlogic executable to selectively determine which of the content segments212 to include in a customized demo based on the user-submittedresponses to a corresponding survey for that product.

In determining which content segments 212 with which to generate thedemo data, the demo personalization module 232 includes computer logicexecutable to query the data store 210 using the responses to determinewhich of the content segments match the survey responses. In someimplementations, in executing the query, the demo personalization module232 matches responses to the questions of the survey to correspondingentries in database storing the library of content segments for thedemo, selects the matching segments from the database, and generates thedemo based thereon. In a non-limiting example, the survey responses mayinclude interest level indicators for various features of the product tobe demonstrated. The interest level indicators respectively indicate theuser's level of interest the features and the demo personalizationmodule 232 matches the interest level indicators to corresponding fieldsmapped to corresponding content segments associated with the features,and based on the matching, determine which content segments to use togenerate the demo data file with.

By way of further illustration and not limitation, in someimplementations, the demonstration system is configured to automaticallybuild a product demonstration that is unique to every website or mobileapp visitor by asking each visitor to respond to specific questions,then automatically selecting not only the sequence of videos but alsothe video length to tailor the product demonstration to each visitor'sspecific needs. This level of personalization creates a uniqueexperience for the visitor that should increase interest in the productby visitor (the prospective customer). This unique combination ofcontent density and sequence is not necessarily limited to selecting andarranging videos and could be implemented with such things asdynamically built documents and/or other website or application content.

FIG. 3 is a flowchart of an example method 300 for generating andproviding a personalized demo for presentation to a user. In block 302,the demo personalization module 232 is executable by one or moreprocessors 202 of a computing system to receive a demo request. The demorequest may include data describing which product demonstration the useris interested in viewing. In response, the demo personalization module232 may signal the survey module 230 to provide a survey to the userrelated to the product of interest. In block 304, the survey module 230is executable by the one or more processors 202 to retrieve the surveyassociated with the demo, and in block 306, the survey module 230 isexecutable by the one or more processors 202 to provide the survey forpresentation to the user. In some implementations, responsive toreceiving the signal from the demo personalization module 232, thesurvey module 230 may retrieve the survey corresponding to the productof interest from an information source, such as the memory 204 and/or adata store 210, and transmit the survey (e.g., via the network 102) tothe client device 106 of the user for presentation (e.g., by the demoapplication 108). In some implementations, the survey module 230 or aportion thereof may reside client-side and be operable by the clientdevice 106 to retrieve the survey from local storage, from the datastore 210 via the network 102, another information source, etc. Othervariations are also possible.

In block 308, the survey module 230 is executable to receive responsedata reflecting responses by the user to questions in the survey and thedata personalization module 232 is executable to determine contentsegments for the demo based on the response data in block 310. In someembodiments, the survey module 230 signals the data personalizationmodule 232 to generate the demo responsive to receiving the surveyresponse data. In response to receiving the signal, the datapersonalization module 232 may determine the content segments for thedemo by matching aspects of the response data to corresponding contentsegments associated with the product to be demonstrated.

In block 312, the demo personalization module 232 is executable togenerate a demo data file reflecting the personalized demo based on thecontent segments. In some embodiments, the demo data file may sequencethe content segments of the demo and may include metadata describing thedemo. In block 314, the demo personalization module 232 is executable toprovide the demo data file for presentation to the user. In someembodiments, the demo personalization module 232 transmit the demo datafile to the demo application 108, such as a web browser or mobileapplication, and the demo application 108 may process demo data file forthe content segments and sequence, and request the content segments fromthe host hosting them in the sequence specified, such as the demo server116 or a third-party server.

By way of further illustration and not limitation, the method 300 isadvantageous as it allows the user, such as a website visitor, toconveniently experience a seamless, unified, and personalized demoexperience. For instance, the website visitor starts the demo, which maybe provided in the form of a multimedia presentation, and in response tostarting the demo, is presented with questions as part of an online formthat the visitor is required to complete. In response to completing theform, the demonstration system (embodied at least in part by the DAASmodule 118 and/or the demo application 108) analyzes the responses anddetermines which content segments (e.g., videos) of which length shouldbe shown in what order. The demonstration system displays the videos ina unified user interface with controls to view the demo, and the videosplay back to back seamlessly to create the unified and personalizedexperience for the website visitor.

As discussed above and elsewhere herein, some implementations allowusers to create customizable demos. These demos include a series offeatures that viewers rate based on interest and/or importance (e.g., noimportant, somewhat important, very important, etc.). Based on theirratings, a personalized demo is shown that includes a short video, along video, or no video at all for each of the features. Creating apersonalized seamless video content experience based on both contentdensity and sequence has several advantages over a one-size-fits-alldemo or a random list of video titles, such as increasing viewersatisfaction and the likelihood of the viewer moving forward in thepurchasing process.

In some implementations, the demo personalization module 232 includescomputer logic executable to further personalize the viewing user'sexperience based on a determination of provide advanced personalizationof a demo. Advanced personalization allows stakeholder users to createwhat are termed advanced demos that route users to standard demos basedon their response to further questioning.

A standard demo means a demo that is personalizable to the user based onthe user's survey response data. An advanced demo means a demo thatroutes users to different standard demos based on additional (advanced)personalization. For example, an additional questionnaire may bepresented to the user asking the user answer to the question: “Whatvertical are you in?”, and based on the user's response, can route theviewer to a standard demo that is tailored to their industry.

FIG. 6O includes a graphical representation of an example interface 680for managing demos. The interface 680 includes a create new demoselector 681 (e.g., a dropdown list) which provides the user withoptions for creating different tiers of demos that are targeted todifferent audiences. In the illustrated example, the user may selectbetween the standard demo an advanced demo, where standard demo is ademo that is customizable to the user based on the survey results dataas discussed elsewhere herein, and the advanced demo routes the users todifferent customizable demos based on the response to an additionalquestionnaire (e.g., a multiple choice question). As depicted, hoveringover the options in the selector 681 provides additional information asto the difference between standard and advanced demos. Selectingstandard redirects the user to the standard demo creation interfaces,such as those discussed with references to FIGS. 6A to 6N. Selectingadvanced redirects the user to an advanced demo interface, such as theinterface 685 depicted in FIG. 6P.

With reference to FIG. 6O, as depicted, the interface 680 also includesan advanced demos table 698 and a standard demos table 699. The advanceddemos table 698 summarizes the advanced demos that the user has created.For example, the table may include the advanced demos that are created,the title of each of the advanced demos, the routing question that isasked, a delimited list of answers, the date the demo was created, thename of the creator of the demo, as well as modification links whichallow the user to preview, send, edit, or delete the advanced demo. Thestandard demos table 699 summarizes the standard demos that the user hascreated in a manner similar to the advanced demos and providesmodification links which allow the user to preview, send, edit, ordelete the standard demos.

In FIG. 6P, the interface 685 includes an advanced demo region 686 thatasks the user to enter the name of a new advanced demo, a logo, and anintroduction video. The interface 685 also prompts the user to enter aquestion that will be shown to people watching the advanced demo and alist of possible answers to the question. For each answer, the user thenchooses a standard demo to associate with the answer and that will beshown to the demo viewer upon that answer being selected in response tothe question. If desired, the user can instead choose to create a newstandard demo, upon which a new text box appears to the right with thelabel “Name”, allowing the user to select a name for the new standarddemo that will be created implicitly at the same time the advanced demois created. This implicitly created standard demo will have noinformation associated with it at this point, but will be stored in thedata store 210 for later setup.

By way of further example, the user may use the interface 685 to createan advanced demo by the name of “My Advanced Demo”, upload a logo,upload an introduction video, input a question, and provide two or moreanswers. For instance, if a first answer (e.g., Construction) is chosenby the demo viewer, the user can be routed to the first (e.g.,Construction) standard demo and if a second answer (e.g., Travel) ischosen by the demo viewer, the user can be routed to a newly createdstandard demo called Travel, which will be setup later on by the user.Each advanced demo in this particular example requires at least 2answers, and users can add as many as are needed. By default, users areshown 2 fields for answers. However, a add button may be included in theinterface 685 allowing users to add additional answers to the question.For instance, selection of the add button may trigger a new line toappear, asking for the answer and a corresponding standard demo. Anoption for deleting previously added answers and demos may also beincluded, allowing the user to remove the answer, upon which theexisting answers may be repositioned (e.g., move up slightly to appeardirectly adjacent to other answers).

Selecting the save button 689 at the top right of the advanced demoregion 686 section triggers the creation of the advanced demo and anyneeded standard demos, while selecting the cancel button 690 deletes anydata input for the advanced demo and returns the user to the previousinterface 685.

Locker Module 236 is computer logic executable by the one or moreprocessors to aggregate documents unique to a demo viewer's needs in alocked document library during viewing of a demo and unlock the documentlibrary once a predetermined rule has been met. In some implementations,the locker module 236 interacts with the demo application 108 to managethe generation of the document library, the unlocking thereof, and theprovision of the documents to the user once the predetermined rule hasbeen met.

The predetermined rule may require that the user elect respond to one ormore calls to action in order to obtain access to the documents (e.g.,start a free trial, contact the sales person, purchase the product, acustomized action specified by the demo administrator, etc.).Non-limiting examples of calls to action are depicted in FIG. 6I. As afurther example, responsive to the user selecting a call to action, thedemo application 108 generates interaction data describing the selectionand provide it to the locker module 236, which may unlock the documentlibrary based on the interaction data satisfying the predetermined rule.The locker module 236 may then signal the demo application 108 to notifythe user that the document library has been unlocked and provide access.

The locker module 236 determines which documents to include in adocument library based on the survey response data collected andprovided by the demo application 108, as discussed elsewhere herein. Thedocuments are each affiliated with one or more segments of the demo, andassociation data associating the documents with their correspondingsegments is stored in the data store as demo data 218.

In some implementations, the locker module 236 receives interaction datathat reflects a user's progression through a given demo. For instance,the demo application 108 may provide the interaction data (e.g., atvarious intervals or upon detecting various events) to the locker module236. In a non-limiting example, the interaction data indicates when theuser reaches the introductory segment, any of intermediate segments, ora final segment of the demo, thereby reflecting the current segmentbeing consumed by the user. The locker module 236 uses the identity ofthe current segment to determine which documents are relevant to thatsegment, and then filters out any documents that do not match withcorresponding answers in the survey results data. The locker module 236adds the matching documents for that current segment to the documentlocker. In conjunction, the demo application 108 may notify the userthat additional documents have been added to the document library.

In some implementations, the demo application 108 displays animationsillustrating to the demo viewer when documents are placed into thelocked document library. For instance, the demo application 108 may, forthe current feature, display an animation showing the additionaldocument(s), which are relevant to that feature, being added to agraphical representation of the locked document library to the user.This is advantageous and it generates user interest in the lockeddocument library. In some implementations, the user may select or over arepresentation of a given document in the locked document library, andupon detecting the event, the demo application 108 may retrieve andpresent a preview of the document (e.g., a snapshot) to further elevateuser interested in unlocking the document library. In some instances,the demo application 108 may retrieve the document previews form thelocker module 236. In some instances, the document previews (e.g.,graphical representations of the document) may be cached upon initialloading of the demo data file received by the demo application 108 toreduce latency and increase interface responsiveness. If the userselects to open a document from a still locked document library, theuser may be prompted by the demo application 108 to take a call toaction required to unlock and provide access to the documents in thedocument library.

The locker module 236 is advantageous as it, in conjunction with thedemo application 108, employs a methodology that can ensure that onlydocuments that fit the website visitor's unique needs are included inthe locked library, thereby increasing the chances that the visitor willtake the desired action to unlock and obtain the documents. In otherwords, because the documents in the document library are associated withspecific user's needs, this provides a uniquely personal incentive andthe user will be more likely to accept the call to action to access thelocked documents. This allows web marketers to increase conversion ratesas the incentive to take the converting act (e.g. completing an onlinerequest to be contacted or start a free trial of software) is muchhigher. It also allows companies to build their own custom responsivelocked document library that is tightly integrated within a demo.

FIGS. 11A and 11B are flowcharts of an example method 1100 for managinga locked document library. In block 1101, the demo personalizationmodule 232 transmit demo data file representing a demo created based onsurvey results data associated with a given user to the demo application108 for presentation to a user. The demo application 108 may process thedemo data file, retrieve the different segments of the demo, includingthe introductory, feature, and pitch-related segments for presentationand/or playback to the user based on the sequence indicated in the demodata file. During the presentation of the demo, the locker module 236tracks the viewing progress of the user. In some implementations, thedemo application 108 may process and/or provide interaction datareflecting the events that occurred during viewing of the demo. The demoapplication 108 and/or the locker module 236 may process the eventsincluded in the interaction data and manage the locked document librarybased thereon.

In block 1104, the demo application 108 detects the next feature eventindicating that the user has begun viewing the initial feature or hastransitioned to a subsequent feature of the demo. Responsive todetecting the next feature event, the demo application 108 provides theevent to the locker module 236, which determines the active feature, forexample, based on identifying information included in the interactiondata that identifies the current feature. For example, the features maybe numbered sequentially and the number corresponding to the currentfeature may be provided in the interaction data and the locker module236 may parse the number. In block 1110, the locker module 236determines the document(s) associated with the feature based on theinteraction data and in block 1112 adds the document(s) to a lockeddocument library. In some instances, the locker module 236 adds thedocument(s) by populating a running list embodying the locked documentlibrary with identifiers referencing the document(s). Continuing theprevious example, the locker module 236 may query the data store 210 fordocuments matching the feature number parsed from the interaction databut that should not excluded based on the survey responses, and thenadds the compliant document(s) to the locked document library. Themethod 1100 then proceeds to block 1106.

In block 1106, the demo application 108 determines whether a previewevent has been detected, and if so, determines which document isassociated with the preview event in block 1114, retrieves a preview ofthe document in block 1116, and displays the preview of the document tothe user in block 1118. Non-limiting examples of a preview event includea hover event, an onclick event, etc. In some instances, the eventincludes a document identifier identifying the document associated withthe preview event, and the demo application 108 uses the documentidentifier to retrieve the document preview. The demo application 108may retrieve the document preview by requesting the document previewfrom the locker module 236 (e.g., via the network 102), retrieve thedocument preview from memory, such as the memory 204, or from anothersuitable information source. The method 1100 then proceeds to block1120.

In block 1120, the demo application 108 determines whether an unlockevent has been detected. If so, the demo application 108 provides theevent to the locker module 136 and unlocks the document library 1122provided the unlock event (e.g., user consent to/selection of a call toaction option) satisfies a predetermined rule, as discussed elsewhereherein. Once unlocked, the locker module 136 provides the documentlibrary to the user 1124 for consumption thereby. For example, when thedemonstration is complete, the demo application 108 may generate andpresent an interface prompting the user to take a specific action tounlock the document library and obtain access to the documents, and upontaking the action, the demo application 108 may display an electroniclink to the documents, the locker module 236 may transmit an electronicmessage to an electronic address of the user enclosing the documentsand/or a link thereto, etc. The method 1100 then proceeds to block 1120.

In block 1126, the demo application 108 and/or the locker module 236determines whether to exit the method 1100. If not, the method 1100returns to block 1102 to track viewing progress and/or processadditional events.

By way of further illustration and not limitation, a user (e.g., websitevisitor) who loads the website (e.g., using the demo application 108) ispresented with a demo viewer interface and starts the demo (e.g.,multimedia presentation) by clicking a button. For example, the demo maybe a survey demo called “Take a Tour”. In response to selecting thebutton, the demo application 108 presents the user with severalquestions as part of an online form that the user must respond to beforeviewing the demo. The survey module 230 records the user's responses andgathers documents most suited to the user's responses. The user'sresponses are associated with specific documents 220 stored in the datastore 210. As the user watches different parts of the demonstration, thelocker module 236 places document(s) related to that part of thedemonstration and to the user's specific needs as reflected by theuser's responses to questions in the form in a locked list (library).

If the user places a pointing device, such as a mouse, over the list ofitems displayed to the user via display as the locked document library,the demo application 108 provides the user a preview of the items, asdiscussed elsewhere herein. The list is updated in real-time and visibleto the user via the demo application 108, but the user cannot access thedocuments until the user chooses to take a predetermined action, such asprovide his/her contact information (e.g., register) or another actionspecified by the demo administrator in order to access the documents inthe list. For instance, the demo application 108 presents on the displayoptions for the user to unlock the document library by taking a specificactions (e.g., submitting contact information, starting a free trial,etc.). Once the user takes an approved action, the demo application 108refreshes the interface to unlock the document area allowing the user todownload and/or otherwise access the documents. Upon selecting todownload the documents, the computing system hosting the documentsreceives a corresponding document requests, retrieves the documents, andtransmits them to the user's client device 106 for presentation and/orstorage thereby.

In some implementations, access to the documents may be tiered. Forinstance, for each action the user selects to take, a portion of thedocuments is provided up to a total. That way if the user selects totake all specified actions, the user can have access to all thedocuments in the locked library, and if the user selects only a portionof the actions, only apportion of the documents in the locked libraryare provided. Other variations are also possible and contemplated.

FIGS. 8A-8G are graphical representations of example user interfaces forinteracting with a demo. Upon selecting to view a given demo, the demoapplication 108 and present the interface 814 as depicted in FIG. 8A tothe user. The interface 814 includes an interaction region 803 providingunified viewing experience to the user. The interaction region 803includes elements for calling the user to action, such as elements 802,804, and 806, which in this example invite the user to start a freetrial, contact the creator/administrator of the demo, or purchase aproduct demonstrated by the demo. It should be understood that this areaof the interface may also include product incentives, offers, and otheritems enticing the user to engage. The interaction region 803 alsoincludes a locked document library 812 that lists documents aggregatedtherein is a user proceeds through the demo. A demo viewing region 810is also included in the interaction region 803 and an option forengaging in real-time synchronous communication with a stakeholder inthe demo, such as a salesperson of the product being demonstrated by thedemo. The viewing region 810 may include a toolbar for navigating thedemo, such as a play button and a scrub bar, and option to place theviewing region 810 in full-screen mode, a volume adjustment selector,etc. In an example, selecting the live chat button 808 initiate thedisplay of a chat window and a real-time communication session withanother note on the network with which the viewer may communicate (e.g.,ask questions, get additional information, be contacted by, etc.).

In FIG. 8B, the viewing region 810 of the interface 814 may display asurvey 813 prompting the user answer questions by indicating a level ofimportance in the features that can be covered about the product by thedemo.

In FIG. 8C, the viewing region 810 of the interface 814 is displaying avideo segment 815 of the demo about an aspect of the product (e.g., howto change networks). As a user proceeds through the different segmentsof the demo, additional documents about the segments are added to thedocument library 812.

In FIG. 8D, the viewing region 810 of the interface 814 is displaying apage 817 including various calls to action to the user and, in responseto the user interacting with one of the documents in the locked documentlibrary 812, the demo application 108 is displaying a preview 819illustrating the contents of the document, thereby enticing the user toselect at least one of the calls to action.

In FIG. 8E, the page 817 includes two calls to action 825 having beenselected and the user is selecting the unlock the locked documentlibrary 812 and submit the form data related to the calls to action byselecting the continue button 821. Responsive to the selection of thecontinue button 821, the demo application 108 displays a page 830 in theinterface 814 including a link to the free trial selected by the user inthe previous interface as well as a link 831 for downloading thedocuments (e.g., PDFs, JPGs, PNGs, videos, other content) of the nowunlocked document library 812.

In FIG. 8G, the interface 814 includes a feedback region 831 including afeedback questionnaire for feedback on the demo. For instance, in thedepicted example, the questionnaire as the user about how the demo canbe improved and why the product in the demo is not the right solutionfor the viewer. In this example, the viewer can select from amongpreconfigured answers from input his or her own answer in the commentsfield by selecting the “other” option. The user may submit the feedbackby selecting the send feedback button 829. In response to selecting thesend feedback button 829, the demo application 108 may send the feedback(also referred to herein as objections) to the demo presentation module232 which may process and store the feedback in the data store for useby the other components of the system 100, such as the analytics module238.

The demo curation module 234 includes computer logic executable to sharedemos with other users. The demo curation module 234 may cooperate withthe analytics module 238 to track user responses to receiving messagesabout demos. FIG. 12 is a flowchart of an example method 1200 fortracking the sharing of demos between users. In block 1202, the DAASModule 118, or an authentication component thereof, authenticates auser, such as a creator of a given demo, to the use the demonstrationsystem, as discussed elsewhere herein. In block 1204, the demo curationmodule 234 receives a demo selection from the user and retrievesdemo-related data for that demo from the data store 210 and provides itto the demo application 108 for presentation to the user. The user mayselect to send the demo to one or more other users, and responsivethereto, the demo application 108 may display an interface includingoptions for the user to send the demo to one or more other users. Inblock 1206, the demo curation module 234 may receive sending data forsending the demo to one or more first users. The demo curation module234 may also receive in block 1208 a custom message to include whensending the demo to the one or more first users. In block 1210, the democuration module 234 may use the sending data and the custom message togenerate an email including a link to the demo and sends the email tothe one or more first users. In block 1212, the demo personalizationmodule 232 receives a request from a first user for the demo responsiveto a user selection of the link included in the email. In block 1214,the demo personalization module 232 informs the initiating user that thefirst user is accessing the demo. This is advantageous as the first usermay use the real-time synchronous communication feature or othercommunication methods for communicating with the first user while thefirst user is accessing the demo to increase the likelihood that thefirst user will convert by heading to a call of action.

In block 1216, the demo personalization module 232 may a demopersonalized to the first user to the demo application 108 of the firstuser, and the demo application 108 a load the demo for the first userfor consumption. During playback of the demo, the demo application 108may prompt the first user to share the demo with other users, andresponsive to, the demo application 108 may receive a request share thedemo from the demo application 108 of the first user, and responsivethereto, may provide a contact form to the user for sending the demo toone or more second (other) users. In block 1222, the demo curationmodule 234 may receive a custom message from the first user to thesecond users, in block 1226 may generate a unique link to the demo fortracking the second users and generates and sends an email including acustom message from the first user and the unique link to the secondusers. In block 1224, the demo curation module 234 may inform theoriginal user/sender of the further sharing the demo by the first user,for example in an email or an administration interface of thedemonstration system. Responsive to sending the email, the demo curationmodule 234 they receive a request to view the demo in response to theselection of the unique link by a second user in block 1228. In block1230, the demo personalization module 232 informs the originaluser/sender that the second user is now accessing the demo so theoriginal user may take steps to engage with the second user. Inaddition, in block 1232, the analytics module may provide the originaluser with analytics describing the sharing of the demo and userinteractions with the demo. For example, the analytics may describe thechain of interactions between discussed with reference to the method1200 to give the sending user additional insight as to which downstreamusers the most effective in getting the word out about the demo andengaging other users to view the demo.

By way of further illustration and not limitation, the followingadditional examples are provided to illustrate the advantages of thepresent disclosure with respect to the sharing and tracking featuresdescribed herein. In some implementations, a product demo resides on awebsite. Using the innovative technology described herein, thesalesperson logs into the site, selects the demo they want to share,inputs contact information for those they want to share it with,including email address, and innovation technology sends a link to thedemo to the prospective customer (the primary recipient). The primaryrecipient clicks the link and views the demo. While viewing the demoinnovation technology encourages the recipient to invite othercolleagues to view the demo. If they choose to, they fill out a formthat includes contact information of those they want to share it with.The technology sends the invitation to the secondary recipient(s) andthey click the link to view the demo. Simultaneously the technologysends an email to the salesperson letting them know the demo was sharedand who it was shared with. The salesperson also receives an email whenthe demo has been viewed, also indicating who it was viewed by. Thesalesperson can also look at reports later that show details about whothe demo was shared with and how each person who viewed the demointeracted with the demo. This provides salespeople with valuableinformation that helps them discover and engage the entire buying panel.It is noted that the technology is not limited to use with videos, butcould also include documents or other kinds of sales collateral content.

The following is a further non-limiting example associated with thesharing aspects of the demonstration technology described herein. Aprospect may receive an email urging the user to watch a demo. Forinstance, the email may include a “Watch the Demo” button, which, whenselected, redirects the user to the demo application 108 and loads acorresponding demo associated with a link corresponding to the button.The link is specific to the prospect (e.g.https://www.demochimp.com/app/view/i/[Invitation ID], where [InvitationID] is a 40 character string of text consisting of letters and numbers),which allows the demonstration system to track the user. For example:https://www.demochimp.com/app/view/i/a42ca9e9a60a7ebd69d91d2b709afd78b5a3e964. It should be under stood that URLs described herein are merelyexamples. Because this URL is tied to a specific prospect, forwardingthe email to someone else can result in inflated analytics andincorrectly attributing demo watching behavior to the originalrecipient. In order to solve this problem, the DAAS module 118, incooperation with the demo application 108, is configured to guidepotential demo viewers into identifying themselves in order to attributetheir behavior to the correct person. Doing so also results in greateridentification and access to the buying panel, allowing sales people toknow who else may be involved in the buying process.

Specifically, when the button in the above-described email is selected,users—whether they are intended recipients or those who were forwardedthe email—are redirected by the DAAS module 118 to a screen (e.g., seeFIG. 10) indicating what company the demo has been prepared for andprompting the user to identify him/herself. The user has the option ofchoosing his/her name from the list if the user was previously invitedto watch the demo, or if they are not listed, the user can choose a newviewer option and enter his/her information so the user can be added tothe list. Once the user is identified, the screen prompts the viewer towatch the demo by selecting a corresponding button.

After the prospect enters their information and selects the button, theuser's information is added to the data store 210 in a correspondinguser profile, and the DAAS module 118, in cooperation with the demoapplication 108, tracks the user's viewing activity and associates theviewing activity with the user's individual identity/user profile. Inaddition, the demo application 108 begins playback of the demo, asdiscussed elsewhere herein.

FIG. 10 is a graphical representation of an example user login interface1000. In FIG. 10, the interface 1000 includes a login dialog 1002. Thelogin dialog 1002 includes a mechanism and process that requires demoviewers to identify themselves in order to generate individual analyticsfor each viewer. Furthermore, the login dialog 1002 provides greateridentification and access to the buying panel, allowing sales people toidentify which demo viewers are involved in the buying process.

FIGS. 7A-7C are graphical representations of example user interfaces forelectronically sharing a demo. In FIG. 7A, the interface 712 includes abutton 702 selectable by the user (e.g., sender, sales person, marketer,etc.) which redirects the user to the interface 715 on FIG. 7B. Theinterface 712 also includes a summary table 704 that includesinformation related to past demos sent by the user. In some instances,the summary table 704 includes information related to the recipient suchas organization name, primary recipient name, the name of the demo sent,a sending date, the total view time of the sent demo, the number ofviews of the demo, days since last activity and the number of times thedemo has been shared. In some instances, the interface 712 includes abutton 706 for generating a link (e.g., URL) of the demo. In someinstances, the user may navigate from the interface 712 by selecting theback button 708 or next button 710.

In FIG. 7B, the interface 715 includes dialogs 716, 717, 718, 719, 720,721, and 720. The primary recipient region 716 includes recipientinformation to be populated by the sender. In some implementations, thedialog 717 includes a drop down menu for the sender to select which demois to be sent. In some instances, the primary recipient region 716includes the dialog 718, which includes information related to theorganization associated with the recipient, the dialog 719, whichincludes the recipients email address, the dialog 720, which includesthe recipient's first name, the dialog 721, which includes therecipient's last name, and the dialog 722, which includes a field forthe sender to enter the recipient's title.

In FIG. 7C, the interface 715 includes an email sending dialog 725 thatincludes a dialog 726, 727, and 728, and a button 729 selectable by thesender for sending the demo electronically to the recipient. In someinstances, the dialog 726 includes an optional field for the sender tospecify any additional recipients. The dialog 727 and dialog 728includes information that is populated by the sender such as a subjectof the email and a custom message.

In implementations involving advanced personalization, users may choosewhether to send an advanced demo or a standard demo. Choosing a standarddemo allows the user to simply send a standard demo as discussed invarious implementations described herein. Choosing an advanced demo,however, results in the demo application 108 displaying at least twooptions. In an example, by default, the first option, which requires aresponse to a question for routing the demo, may be selected. With thisoption, the user indicates that he/she would like the demo viewer to beasked the question. If, however, the user would like to choose theanswer for the demo viewer, they can check an option to answer on behalfof the viewer and select from among the answers that were added at thetime the advanced demo was created. Answering on behalf of the viewerresults in the demo viewer being sent the standard demo associated withthe answer for that advanced demo. Choosing the standard demo to beginwith would have resulted in the same thing, but if users are unsurewhich standard demo they would like to send, it may be helpful for themto locate it by going through this process.

By way of further illustration and not limitation, the followingdescribes an example experience of viewing an advanced demo. Uponloading the advanced demo using the demo application 108, the demoviewer is presented with the logo and introduction video. If nointroduction video was uploaded, this step is be skipped. After theintroduction video, the demo application 108 presents the questionchosen when creating the advanced demo along with the list of predefinedanswers which the viewer may select from. Upon selection of an answer,the demo viewer is then routed the standard demo associated with theanswer that they chose and presented with the introduction video of thatstandard demo.

The analytics module 238 includes computer logic executable by the oneor more processors 202 to generate analytics about the demos curated andviewed by users using the demonstration technology described herein. Insome implementations, the analytics describe the level of user activityin interacting with the demos, the level of sales resulting from thedemos, the user interest and/or dissatisfaction with various aspects ofthe demos, etc. Detailed non-limiting examples of the types of analyticsgenerated by the analytics modules are depicted in FIGS. 4A-4G and 9 forexample, which are discussed elsewhere herein.

The analytics module 238 may generate analytics based on interactiondata received by the DAAS module 118 while users interact with the demos(e.g., playback, provide feedback on, fill out surveys for, share,communicate with others about, etc.). The interaction data describingthese interactions may be received by the DAAS module 118, or acomponent thereof, and stored in the data store 210 for later analysisand/or retrieval.

In some instances, the analytics module 238 may receive an analyticsrequest (e.g., from the demo application 108) and may process thecorresponding analytics based on the interaction data received by theDAAS module 118 and generate a report of the analytics may include beingpresented on the display 209. Detailed non-limiting examples of thedisplays including the analytics generated by the analytics modules 238are depicted in FIGS. 4A-4G and 9 for example, which are discussedelsewhere herein.

In addition or alternatively, the analytics module 238 may be coupled toa third-party server 122 hosting an application engine 124 executable bythe third-party server 122 to track user behavior when consuming demoshosted by webservers and/or embedded in user applications (e.g., mobileapps). A non-limiting example of an analytics engine is GoogleAnalytics™. The analytics module 238 may ingest analytics from theanalytics engine (e.g., in response to a request sent to the analyticsengine by the analytics module 238). The analytics module 238 may usethese more general analytics in combination with the unique analyticscollected in response to receive survey response data, advanced demoquestionnaire data, demo data, and/or other data from the demoapplication 108 during the playback and/or curation of demos.

In some instances, for example, a prospective customer may sign upthrough a contact form provided by the demo application 108. Forexample, the demo application 108 may match the prospective customer'sanalytics by retrieving data (e.g. survey response data 216 and demodata 218) from the data store 210 and contact information, and providevaluable additional information for sales follow up.

In some implementations, the demo viewer interacts with the demoapplication 108, which monitors the interactions and sends interactiondata describing the interactions to DAAS module 118 which stores it inthe data store 210. The analytics module 238 generates analytics basedon the interaction data, such as, for example, time spent overall usingthe demo application 108, time spent viewing each feature, documentsdownloaded by the viewer, and the purpose for NOT moving forward with acall to action (the process), etc. This advantageously allows for thedemonstration system to gather information automatically fromprospective customers (e.g. demo viewers).

In some implementations, the analytics module 238 may track thepopularity of the features of the demo over time and over the body ofusers or a segment thereof. For example, each time users skip, mute,hide, or otherwise ignore a given feature, interaction data reflectingthe users' actions is provided by the DAAS Module 118 by the instancesof the demo application 108 being used by users, and the DAAS Module 118stores data reflecting the performance of the features in the data store210 as demo data 218. The analytics module 118 can retrieve this dataand analyze which features have been ignored, objected to, or skippedthe most. On the other hand, interaction data reflecting the features ofthe demos that users frequently viewed, rewound, viewed again, shared,commented on, communicated with others about, etc., may also be analyzedby the analytics module 118 and determined to be popular compared to thepreviously described, poorly performing features. The popular andunpopular features may be further segmented by importance as indicatedin survey results data, which adds additional dimension to the value ofthe popular and unpopular features. This way, underperforming featuresof the demo that are also deemed unimportant may be surfaced to theadministrator, and the administrator may take action to remove and/orrevise those features to increase their performance and/or importance.

By way of further illustration and not limitation, during the period inwhich the demo application 108 displays demo interface in surveyquestions to a viewer with texture another message explaining theanswering the questions will provide them with a personalizeddemonstration, the demo application 108 may begin gathering analyticsdata, such as the time the user began the demo and whether the useraccess the demo in response to the demo having been shared with the userusing a unique link, as discussed elsewhere herein. Next, as the useranswers survey questions, the demo application 108, in real-time, maysend the survey response data asynchronously to the survey module 118for storage in the data store 210. Based on the responses, the demopersonalization module 232 provides the demo data file reflecting thedemo to the demo application 108 for presentation, during playback ofthe demo, the demo application 108 gathers analytics data, such asinteraction data reflecting the user's interaction with the demo, suchas the time spent in each segment of the demo, which video topic theuser was viewing when the demo was closed etc. In response to the userbeing presented with calls to action by the demo application 108 thatencourage the user to take a next step in the sales process, the demopersonalization module 234 monitors the outcome of the calls to actionand stores information reflecting either whether the user accepted acall to action or did not, and if not, stores the reasons why (e.g.,objections) provided by the user in the data store 210. The user doesexcept a call that action, the demo personalization module 232 receivesdemo data including contact information for the user submitted by theuser using the demo application 108 (e.g., a contact form presentedthereby), and the analytics module 238 uses this contact information andcombines it with the users specific analytics information and stores theinformation is a lead record, which may be later accessed/provided to astakeholder in the demo for follow-up.

In some implementations, the analytics module 238 may segmentdemo-related information by user based on the user's activitydata/interaction data, such as their viewing time, the features theylike or not, their feedback, etc. As previously mentioned, an additionalbenefit of being able to reliably identify and store interaction data ofthe user in association with the users of the demonstration system isthat additional buying panel identities are captured, which allows salespeople to be more aware of those who are involved in the decision makingprocess.

FIGS. 4A-4G are graphic representations of example user interfaces forviewing demo-related analytics. In FIG. 4A, the interface 405 mayinclude a drop-down list 406 of previously created demos associated withthe user (e.g., Car, Wireless System, GPS, etc.) Furthermore, theinterface 405 in FIG. 4A may include a drop-down menu 408 for the userto specify a date range for processing the analytics for the selecteddemo. For example, the user selects the Car demo in the drop-down list406 and requests to process the analytics of the Car demo for thespecified date range from Aug. 10, 2014 to Sep. 8, 2014. In someinstances, the selected date may be a particular day (e.g., past andpresent day) or a range (e.g., previous week, month, etc.).

In FIG. 4B, responsive to selecting the demo in FIG. 4A, the demoapplication 108 may present the interface 409, various tabs, such as theat a glance tab 410, for viewing different aspects of the analyticsgenerate by the analysis module 238. The analytics may reflect userinterest in different aspects of the demo. In some implementations, theanalytics may include various indicators and statistic related toconversions, demo features, and objections.

For example, as depicted, the interface 409 includes a conversion dialog412, a feature dialog 414, and an objection dialog 416. The conversiondialog 412 includes a total number of views (e.g., 63) the demo hasreceived, a website conversion rate of the demo (e.g., 13%), and anumber of buy-now clicks selected by previous viewers that have viewedthe demo (e.g., 1). The features dialog 414 indicates which features ofthe demo are the most popular (e.g., feature 3) and the least popular(e.g., feature 4). Non-limiting examples of the features of the Car demomay include the engine, the suspension, the interior, the styling, etc.The objections dialog 416 includes a most common objection (objection1), a least common objection (objection 2), and a number of visitorsobjecting (zero).

In FIG. 4C, tab 418 of the interface 417 is shown as selected by theuser to display detailed conversions analytics, which includes a totaldemo views dialog 420 and a conversion ratio dialog 422. The total demoviews dialog 420 includes view levels associated with the demo, such asthe total number of views (e.g., 63), the total number of website views(e.g., 16), and the number of views from the demos sent by the user toother viewers (e.g., 47). In some instances, the interface 417 maypresent a graphical statistical comparison as shown in the graphicaldialog 424, which compares the total number of views of the website byviewers and the number of viewers that viewed the sent demo. Theconversion ratio dialog 422 includes conversion-related informationassociated with the demo, such as the total number of website views(e.g., 16), the number of website conversions (e.g., 2), the number ofwebsite conversion ratio (e.g., 13%), and the buy-now clicks (e.g., 1)performed by viewers that have previously viewed the demo. In someinstances, the interface 417 may present a graphical statisticalcomparison as shown in the dialog 426, which compares statisticalcomparison between website conversions and non-conversions.

In FIG. 4D, tab 428 of the interface 427 is shown as selected by theuser to display feature-related information, which includes a dialog 430and a feature comparison 432. The dialog 430 displays the most and leastpopular features of the demo. For example, the dialog 430 shows thatfeature 3 is the most popular feature in the demo, and that feature 4 isthe least popular feature presented in the demo. The feature comparison432 includes graphical statistical information about the features (e.g.,bar chart, pie chart, etc.). In some instances, the feature comparison432 displays a comparison between all the features included in the demo.In some instances the comparison of the features is measured byimportance (e.g., not important, somewhat important, and very important,etc.), as indicated by the previous viewers of the demo. In someinstances, based on the importance measurement data presented in theanalytics report, the user of the demo may select to remove featuresfrom the demo to promote more user traffic to the demo.

In FIG. 4E, tab 434 of the interface 431 is shown as selected by theuser to display objection-related information, which includes theobjection dialog 436 and the objections comparison 438. The objectiondialog 436 may include information indicating the most common objection,the least common objection, and the number of visitors to the demo thatindicated an objection. The objections comparison 438 includes graphicalstatistical information about the objections (e.g., bar chart, piechart, etc.). In some instances, the objections comparison 438 displaysa comparison between all the objections included in the demo. In someinstances the comparison of the objections is measured by importance(e.g., not important, somewhat important, and very important, etc.), asindicated by the previous viewers of the demo. The administrator of thedemo may use the most common objections to adapt the demo to address thedeficiencies associated with those objections.

FIG. 4F illustrates an example analytics report for an example demo.FIG. 4F includes an interface 441 that includes a button 443, whenselected by the user, displays an overview of the analytics to the user.The interface 441 may also include dialog windows 440, 442, 444, and446. The dialog 440 may include a statistical summary of total views thedemo received associated with a specified date range. The dialog 440 mayalso include additional viewing statistics associated with the totalviews for example, a total view time and an average view time. Forexample, the total view time may include a combined view time by viewersof the demo and the average view time may include the average amount oftime viewers spent viewing the demo.

In some instances, the dialog 442 may include marketing informationassociated with the demo. The dialog 442 may also include statisticsassociated with the marketing information for example, the number ofviews, conversions, and conversions ratio.

In some instances, the dialog 444 may include sales informationassociated with the demos sent to other users. The dialog 444 may alsoinclude additional sales statistics for example, the number of views,conversions, and conversions ratio associated with the demo. Forexample, the dialog 442 may display the sales information in a graph.For example, the graph inside the dialog 442 displays the total numberof views of the sent demo for the date range.

In some instances, the interface 441 may include the dialog 446 fordisplaying statistical information associated with one or more otherdemos created by the user. For example, the statistical information mayinclude the number of demos sent, the number of received views for thedemo, the view rate, the number of times the user has shared the demo,the total view time, and the average view time.

In FIG. 4G, the interface 459 a sales aspect of the example analyticsreport for the example demo. The interface 459 includes a button 447when selected by the user displays sales analytics associated with thedemo. The interface 459 may also include dialog windows 448, 450, 452,454, and 456. The dialog 448 in some instances may include a statisticalsummary of the total views the demo received during a specified daterange. The dialog 448 may also include additional viewing statisticsassociated with the total views, for example, the total number of demossent to other users, the total number of received views, the view rate,the total number of times the demo was shared, the total view time, andthe average view time. In some instances, the dialog 450 may include aleader board showing the best performers (e.g., users with most demossent, most demos viewed, most demos shared, highest average view time,etc.). In some instances, the dialog 452 may include a people sectionindividualizing the demo-related activity. In some instances, the dialog454 may include a customer section indicating organizations (e.g.,businesses, groups, etc.) that have received invitations to view thedemo.

In some instances, the interface 459 may include the dialog 456 fordisplaying statistical information associated with one or more otherdemos created by the user. For example, the statistical information mayinclude the number of demos sent, the number of received views for thedemo, the view rate, the number of times the user has shared the demo,the total view time, and the average view time.

In FIG. 9, the interface 900 includes a dialog 902 including the numberof available leads and an option for the user to download the leads. Insome instances, the user may download the leads in a particular format(e.g., csv). The dialog 902 may also include additional leadsinformation. For example, the additional leads information may includelead-specific information (e.g. name of each lead) and contactinformation (e.g., email, phone number, etc.) for the lead, commentsfrom the leas (e.g., input while viewing a demo), the date and time ofthe lead being generated, and analytics data about a particular lead. Insome instances, the analytics may include the total view time of thelead in interacting with a viewing user of the demo. In some instances,the user may navigate from the interface 900 by selecting the backbutton 904 or next button 906.

In a non-limiting example, a user may request analytics data or a givendemo by selecting the demo using a corresponding interface (e.g., seeFIG. 4A) and specifying a date range for the analytics, and theanalytics module 238 may generate analytics for that demo based on thisinformation. In some instances, the analytics module 238 generateanalytics data for the demos at regular intervals so when a userrequests analytics data for a given demo or group of demos, theanalytics module 238 can quickly retrieve the corresponding previouslygenerated analytics from a non-transitory information source, such asthe memory 204, the data store 210, etc., and provide the analytics 222for presentation to the user (e.g., via the display 209).

While certain acts and/or functionality described herein as beingassociated with certain modules, it should be understood that these actsand/or functionality may be performed by other modules, or a combinationof two or more modules, and/or moved from a client side or server sideimplementation without departing from the scope of this disclosure.

The foregoing description has been presented for the purposes ofillustration and description. It is not intended to be exhaustive or tolimit the specification to the precise form disclosed. Manymodifications and variations are possible in light of the aboveteaching. It is intended that the scope of the disclosure be limited notby this detailed description, but rather by the claims of thisapplication. As will be understood by those familiar with the art, thespecification may be embodied in other specific forms without departingfrom the spirit or essential characteristics thereof. Likewise, theparticular naming and division of the modules, routines, features,attributes, methodologies and other aspects are not mandatory orsignificant, and the mechanisms that implement the specification or itsfeatures may have different names, divisions and/or formats.

Furthermore, the modules, routines, features, attributes, methodologiesand other aspects of the disclosure can be implemented as software,hardware, firmware, or any combination of the foregoing. Also, wherevera component, an example of which is a module, of the specification isimplemented as software, the component can be implemented as astandalone program, as part of a larger program, as a plurality ofseparate programs, as a statically or dynamically linked library, as akernel loadable module, as a device driver, and/or in every and anyother way known now or in the future. Additionally, the disclosure is inno way limited to implementation in any specific programming language,or for any specific operating system or environment. Reference is madeto exemplary implementations such as those illustrated in the drawings,and specific language is used herein to describe the same. Butalterations and further modifications of the features illustratedherein, and additional technical applications of the abstract principlesillustrated by particular implementations herein, which would occur toone skilled in the relevant art(s) and having possession of thisdisclosure, should be considered within the scope of the claims.

The meaning of terms is clarified in this disclosure, so claims shouldbe read with careful attention to these clarifications. Specificexamples are given, but those of skill in the relevant art(s) willunderstand that other examples may also fall within the meaning of theterms used, and within the scope of one or more claims. Terms do notnecessarily have the same meaning here that they have in general usage(particularly in non-technical usage), or in the usage of a particularindustry, or in a particular dictionary or set of dictionaries.Reference numerals may be used here and/or in successor applicationswith various phrasings, to help show the breadth of a term. Omission ofa reference numeral from a given piece of text does not necessarily meanthat the content of a Figure is not being discussed by the text. Theinventor asserts and exercises his right to his own lexicography. Quotedterms are defined explicitly, but quotation marks are not used when aterm is defined implicitly. Terms may be defined, either explicitly orimplicitly, here in the Description and/or elsewhere in the applicationfile.

As used herein, a computer or computing system may include, for example,one or more servers, motherboards, processing nodes, personal computers(portable or not), personal digital assistants, smartphones, cell ormobile phones, other mobile devices having at least a processor and amemory, and/or other device(s) providing one or more processorscontrolled at least in part by instructions. The instructions may be inthe form of firmware or other software in memory and/or specializedcircuitry. In particular, although it may occur that manyimplementations run on workstation or laptop computers, otherimplementations may run on other computing devices, and any one or moresuch devices may be part of a given implementation.

A “multithreaded” computer system is a computer system which supportsmultiple execution threads. The term “thread” should be understood toinclude any code capable of or subject to scheduling (and possibly tosynchronization), and may also be known by another name, such as “task”,“process,” or “coroutine,” for example. The threads may run in parallel,in sequence, or in a combination of parallel execution (e.g.,multiprocessing) and sequential execution (e.g., time-sliced).Multithreaded environments have been designed in various configurations.Execution threads may run in parallel, or threads may be organized forparallel execution but actually take turns executing in sequence.Multithreading may be implemented, for example, by running differentthreads on different cores in a multiprocessing environment, bytime-slicing different threads on a single processor core, or by somecombination of time-sliced and multi-processor threading. Thread contextswitches may be initiated, for example, by a kernel's thread scheduler,by user-space signals, or by a combination of user-space and kerneloperations. Threads may take turns operating on shared data, or eachthread may operate on its own data, for example.

A “logical processor” or “processor” is a single independent hardwarethread-processing unit, such as a core in a simultaneous multithreadingimplementation. As another example, a hyper threaded quad core chiprunning two threads per core has eight logical processors. A logicalprocessor includes hardware. The term “logical” is used to prevent amistaken conclusion that a given chip has at most one processor;“logical processor” and “processor” are used interchangeably herein.Processors may be general purpose, or they may be tailored for specificuses such as graphics processing, signal processing, floating-pointarithmetic processing, encryption, I/O processing, and so on.

A “multiprocessor” computer system is a computer system, which hasmultiple logical processors. Multiprocessor environments occur invarious configurations. In a given configuration, all of the processorsmay be functionally equal, whereas in another configuration someprocessors may differ from other processors by virtue of havingdifferent hardware capabilities, different software assignments, orboth. Depending on the configuration, processors may be tightly coupledto each other on a single bus, or they may be loosely coupled. In someconfigurations, the processors share a central memory, in some, theyeach have their own local memory, and in some configurations, bothshared and local memories are present.

“Kernels” include operating systems, hypervisors, virtual machines, BIOScode, and similar hardware interface software.

“Code” and “software” are used interchangeably; each means processorinstructions, data (which includes constants, variables, and datastructures), or both instructions and data.

“Program” is used broadly herein, to include applications, kernels, anddrivers, interrupt handlers, libraries, and other code written byprogrammers (who are also referred to as developers).

As used herein, “include,” allows additional elements (i.e., includesmeans comprises) unless otherwise stated. “Consists of” means consistsessentially of, or consists entirely of. X consists essentially of Ywhen the non-Y part of X, if any, can be freely altered, removed, and/oradded without altering the functionality of claimed implementations sofar as a claim in question is concerned.

“Process” is sometimes used herein as a term of the computing sciencearts, and in that technical sense encompasses resource users, namely,coroutine, threads, tasks, interrupt handlers, application processes,kernel processes, procedures, and object methods, for example. “Process”is also used herein as a patent law term of art, e.g., in describing aprocess claim as opposed to a system claim or an article of manufacture(configured storage medium) claim. Similarly, “method” is used herein attimes as a technical term in the computing science arts (a kind of“routine”) and also as a patent law term of art (a “process”). Those ofskill will understand which meaning is intended in a particularinstance, and will also understand that a given claimed process ormethod (in the patent law sense) may sometimes be implemented using oneor more processes or methods (in the computing science sense).

“Automatically” means by use of automation (e.g., general-purposecomputing hardware configured by software for specific operations andtechnical effects discussed herein), as opposed to without automation.In particular, steps performed “automatically” are not performed by handon paper or in a person's mind, although they may be initiated by ahuman person or guided interactively by a human person. Automatic stepsare performed with a machine in order to obtain one or more technicaleffects that would not be realized without the technical interactionsthus provided.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems,storage devices, remote printers, etc., through intervening privateand/or public networks. Wireless (e.g., Wi-Fi™) transceivers, Ethernetadapters, and modems, are just a few examples of network adapters. Theprivate and public networks may have any number of configurations and/ortopologies. Data may be transmitted between these devices via thenetworks using a variety of different communication protocols including,for example, various Internet layer, transport layer, or applicationlayer protocols. For example, data may be transmitted via the networksusing transmission control protocol/Internet protocol (TCP/IP), userdatagram protocol (UDP), transmission control protocol (TCP), hypertexttransfer protocol (HTTP), secure hypertext transfer protocol (HTTPS),dynamic adaptive streaming over HTTP (DASH), real-time streamingprotocol (RTSP), real-time transport protocol (RTP) and the real-timetransport control protocol (RTCP), voice over Internet protocol (VOIP),file transfer protocol (FTP), WebSocket (WS), wireless access protocol(WAP), various messaging protocols (SMS, MMS, XMS, IMAP, SMTP, POP,WebDAV, etc.), or other known protocols.

One of skill understands that technical effects are the presumptivepurpose of a technical implementation. The mere fact that calculation isinvolved in an implementation, for example, and that some calculationscan also be performed without technical components (e.g., by paper andpencil, or even as mental steps) does not remove the presence of thetechnical effects or alter the concrete and technical nature of theimplementation. For example, certain familiar devices perform balancecalculations to maintain their balance; some examples include mobilerobots and SEGWAY® wheeled personal mobility devices (mark of Segway,Inc.). These devices are not part of the implementations describedherein but they illustrate the point that technical effects are providedby technical components, not by mere mental steps. Balance calculationssimply cannot be performed rapidly enough by mental steps or by paperand pencil to provide the balance that is present in many mobile robotsor wheeled personal mobility devices. The technical effect of having adynamically balanced device is thus provided by technical componentswhich include a processor and a memory interacting with balance controlsoftware.

“Computationally” likewise means a computing system (processor plusmemory, at least) is being used, and excludes obtaining a result by merehuman thought or mere human action alone. For example, doing arithmeticwith a paper and pencil is not doing arithmetic computationally asunderstood herein. Computational results are faster, broader, deeper,more accurate, more consistent, more comprehensive, and/or otherwiseprovide technical effects that are beyond the scope of human performancealone. “Computational steps” are steps performed computationally.Neither “automatically” nor “computationally” necessarily means“immediately”. “Computationally” and “automatically” are usedinterchangeably herein.

“Proactively” means without a direct request from a user. Indeed, a usermay not even realize that a proactive step by an implementation waspossible until a result of the step has been presented to the user.Except as otherwise stated, any computational and/or automatic stepdescribed herein may also be done proactively.

Throughout this document, use of the optional plural “(s)”, “(es)”, or“(ies)” means that one or more of the indicated feature is present. Forexample, “processor(s)” means “one or more processors” or equivalently“at least one processor”.

Whenever reference is made to data or instructions, it is understoodthat these items configure a computer-readable memory and/orcomputer-readable storage medium, thereby transforming it to aparticular article, as opposed to simply existing on paper, in aperson's mind, or as a mere signal being propagated on a wire, forexample. Unless expressly stated otherwise in a claim, a claim does notcover a signal per se. A memory or other computer-readable storagemedium is not a propagating signal or a carrier wave outside the scopeof patentable subject matter under United States Patent and TrademarkOffice (USPTO) interpretation of the In re Nuijten case.

Moreover, notwithstanding anything apparently to the contrary elsewhereherein, a clear distinction is to be understood between (a) computerreadable storage media and computer readable memory, on the one hand,and (b) transmission media, also referred to as signal media, on theother hand. A transmission medium is a propagating signal or a carrierwave computer readable medium. By contrast, computer readable storagemedia and computer readable memory are not propagating signal or carrierwave computer readable media. Unless expressly stated otherwise,“computer readable medium” means a computer readable storage medium, nota propagating signal per se.

An operating environment for an implementation may include a computersystem. The computer system may be a multiprocessor computer system, ornot. An operating environment may include one or more machines in agiven computer system, which may be clustered, client-server networked,and/or peer-to-peer networked. An individual machine is a computersystem, and a group of cooperating machines is also a computer system. Agiven computer system may be configured for end-users, e.g., withapplications, for administrators, as a server, as a distributedprocessing node, and/or in other ways.

Human users may interact with the computer system 102 using displays,keyboards, and other peripherals, via typed text, touch, voice,movement, computer vision, gestures, and/or other forms of I/O. A userinterface may support interaction between an implementation and one ormore human users. A user interface may include a command line interface,a graphical user interface (GUI), natural user interface (NUI), voicecommand interface, and/or other interface presentations. A userinterface may be generated on a local desktop computer, or on a smartphone, for example, or it may be generated from a web server and sent toa client. The user interface may be generated as part of a service andit may be integrated with other services, such as social networkingservices. A given operating environment includes devices andinfrastructure which support these different user interface generationoptions and uses. One of skill will appreciate that the foregoingaspects and other aspects presented herein as “Operating Environments”may also form part of a given implementation.

This document's headings are not intended to provide a strictclassification of features into implementation and non-implementationfeature classes.

System administrators, developers, engineers, and end-users are each aparticular type of user. Automated agents, scripts, playback software,and the like acting on behalf of one or more people may also be users.Storage devices and/or networking devices may be considered peripheralequipment in some implementations. Other computer systems may interactin technological ways with the computer system or with another systemimplementation using one or more connections to a network via networkinterface equipment, for example.

The computer system includes at least one logical processor. Thecomputer system, like other suitable systems, also includes one or morecomputer-readable storage media. Media may be of different physicaltypes. The media may be volatile memory, non-volatile memory, fixed inplace media, removable media, magnetic media, optical media, solid-statemedia, and/or of other types of physical durable storage media (asopposed to merely a propagated signal). In particular, a configuredmedium such as a portable (i.e., external) hard drive, CD, DVD, memorystick, or other removable non-volatile memory medium may becomefunctionally a technological part of the computer system when insertedor otherwise installed, making its content accessible for interactionwith and use by processor. The removable configured medium is an exampleof a computer-readable storage medium. Some other examples ofcomputer-readable storage media include built-in RAM, ROM, hard disks,and other memory storage devices which are not readily removable byusers. Neither a computer-readable medium nor a computer-readable memoryincludes a signal per se.

The medium is configured with instructions that are executable by aprocessor; “executable” is used in a broad sense herein to includemachine code, interpretable code, bytecode, and/or code that runs on avirtual machine, for example. The medium is also configured with datawhich is created, modified, referenced, and/or otherwise used fortechnical effect by execution of the instructions. The instructions andthe data configure the memory or other storage medium in which theyreside; when that memory or other computer readable storage medium is afunctional part of a given computer system, the instructions and dataalso configure that computer system. In some implementations, a portionof the data is representative of real-world items such as productcharacteristics, inventories, physical measurements, settings, images,readings, targets, volumes, and so forth. Such data is also transformedby backup, restore, commits, aborts, reformatting, and/or othertechnical operations.

Although an implementation may be described as being implemented assoftware instructions executed by one or more processors in a computingsystem (e.g., general purpose computer, cell phone, or gaming console),such description is not meant to exhaust all possible implementations.One of skill will understand that the same or similar functionality canalso often be implemented, in whole or in part, directly in hardwarelogic, to provide the same or similar technical effects. Alternatively,or in addition to software implementation, the technical functionalitydescribed herein can be performed, at least in part, by one or morehardware logic components. For example, and without excluding otherimplementations, an implementation may include hardware logic componentssuch as Field-Programmable Gate Arrays (FPGAs), Application-SpecificIntegrated Circuits (ASICs), Application-Specific Standard Products(ASSPs), System-on-a-Chip components (SOCs), Complex Programmable LogicDevices (CPLDs), and similar components. Components of an implementationmay be grouped into interacting functional modules based on theirinputs, outputs, and/or their technical effects, for example.

The code and other items shown in the Figures and/or discussed in thetext, may reside partially or entirely within one or more hardwaremedia, thereby configuring those media for technical effects which gobeyond the “normal” (i.e., least common denominator) interactionsinherent in all hardware—software cooperative operation. In addition toprocessors (CPUs, ALUs, FPUs, and/or GPUs), memory/storage media,display(s), and battery(ies), an operating environment may also includeother hardware, such as buses, power supplies, wired and wirelessnetwork interface cards, and accelerators, for instance, whoserespective operations are described herein to the extent not alreadyapparent to one of skill. CPUs are central processing units, ALUs arearithmetic and logic units, FPUs are floating point processing units,and GPUs are graphical processing units.

In some implementations, peripherals such as human user I/O devices(screen, keyboard, mouse, tablet, microphone, speaker, motion sensor,etc.) will be present in operable communication with one or moreprocessors and memory. However, an implementation may also be deeplyembedded in a technical system, such that no human user interactsdirectly with the implementation. Software processes may be users.

In some implementations, the system includes multiple computersconnected by a network. Networking interface equipment can provideaccess to networks, using components such as a packet-switched networkinterface card, a wireless transceiver, or a telephone networkinterface, for example, which may be present in a given computer system.However, an implementation may also communicate technical data and/ortechnical instructions through direct memory access, removablenonvolatile media, or other information storage-retrieval and/ortransmission approaches, or an implementation in a computer system mayoperate without communicating with other computer systems.

Some implementations operate in a “cloud” computing environment and/or a“cloud” storage environment in which computing services are not ownedbut are provided on demand. For example, demo videos may be on multipledevices/systems in a networked cloud, locked library documents may bestored on yet other devices within the cloud, and the innovation mayconfigure the display on yet other cloud device(s)/system(s).

Figures illustrates some process implementations in flowcharts.Technical processes shown in the Figures or otherwise disclosed may beperformed in some implementations automatically, e.g., under control ofa script or otherwise requiring little or no contemporaneous live userinput. Processes may also be performed in part automatically and in partmanually unless otherwise indicated. In a given implementation, zero ormore illustrated steps of a process may be repeated, perhaps withdifferent parameters or data to operate on. Steps in an implementationmay also be performed serially, in a partially overlapping manner, orfully in parallel, and steps from different flowcharts may be combinedin a particular implementation. The order in which steps are traversedduring a process may vary from one performance of the process to anotherperformance of the process. Steps may be omitted, combined, renamed,regrouped, or otherwise depart from a particular illustrated flow,provided that the process performed is operable and conforms to at leastone claim of the application or patent in question.

Examples are provided herein to help illustrate aspects of thetechnology, but the examples given within this document do not describeall possible implementations. Implementations are not limited to thespecific implementations, arrangements, displays, features, approaches,or scenarios provided herein. A given implementation may includeadditional or different technical features, mechanisms, and/or datastructures, for instance, and may otherwise depart from the examplesprovided herein.

Some implementations include a configured computer-readable storagemedium, which may include disks (magnetic, optical, or otherwise), RAM,EEPROMS or other ROMs, and/or other configurable memory, including inparticular computer-readable media (as opposed to mere propagatedsignals). The storage medium which is configured may be in particular aremovable storage medium such as a CD, DVD, or flash memory. Ageneral-purpose memory, which may be removable or not, and may bevolatile or not, can be configured into an implementation using itemsdiscussed in the text and/or shown in the figures, in the form of dataand instructions, read from a removable medium and/or another sourcesuch as a network connection, to form a configured medium. Theconfigured medium is capable of causing a computer system to performtechnical process steps for innovation(s) as disclosed herein. TheFigures thus help illustrate configured storage media implementationsand process implementations, as well as system implementations.

Although particular implementations are expressly illustrated anddescribed herein as processes, as configured media, or as systems, itwill be appreciated that discussion of one type of implementation alsogenerally extends to other implementation types. For instance, thedescriptions of processes also help describe configured media, and helpdescribe the technical effects and operation of systems and manufactureslike those discussed. It does not follow that limitations from oneimplementation are necessarily read into another. In particular,processes are not necessarily limited to the data structures andarrangements presented while discussing systems or manufactures such asconfigured memories.

Reference herein to an implementation having some feature X andreference elsewhere herein to an implementation having some feature Ydoes not exclude from this disclosure implementations which have bothfeature X and feature Y, unless such exclusion is expressly statedherein. The term “implementation” is merely used herein as a moreconvenient form of “process, system, article of manufacture, configuredcomputer readable medium, and/or other example of the teachings hereinas applied in a manner consistent with applicable law”. Accordingly, agiven “implementation” may include any combination of features disclosedherein, provided the implementation is consistent with at least oneclaim.

Not every item shown in the Figures need be present in everyimplementation. Conversely, an implementation may contain item(s) notshown expressly in the Figures. Although some possibilities areillustrated here in text and drawings by specific examples,implementations may depart from these examples. For instance, specifictechnical effects or technical features of an example may be omitted,renamed, grouped differently, repeated, instantiated in hardware and/orsoftware differently, or be a mix of effects or features appearing intwo or more of the examples. Functionality shown at one location mayalso be provided at a different location in some implementations; one ofskill recognizes that functionality modules can be defined in variousways in a given implementation without necessarily omitting desiredtechnical effects from the collection of interacting modules viewed as awhole.

Any apparent inconsistencies in the phrasing or other depictionassociated with a given item, in the figures or in the text, should beunderstood as simply broadening the scope of what is referenced.

As used herein, terms such as “a” and “the” are inclusive of one or moreof the indicated item or step. In particular, in the claims a referenceto an item generally means at least one such item is present and areference to a step means at least one instance of the step isperformed.

Headings are for convenience only; information on a given topic may befound outside the section whose heading indicates that topic.

All claims, as filed, are part of the specification.

While exemplary implementations have been shown in the drawings anddescribed above, it will be apparent to those of ordinary skill in theart that numerous modifications can be made without departing from theprinciples and concepts set forth in the claims, and that suchmodifications need not encompass an entire abstract concept. Althoughthe subject matter is described in language specific to structuralfeatures and/or procedural acts, it is to be understood that the subjectmatter defined in the appended claims is not necessarily limited to thespecific technical features or acts described above the claims. It isnot necessary for every means or aspect or technical effect identifiedin a given definition or example to be present or to be utilized inevery implementation. Rather, the specific features and acts and effectsdescribed are disclosed as examples for consideration when implementingthe claims.

All changes which fall short of enveloping an entire abstract idea butcome within the meaning and range of equivalency of the claims are to beembraced within their scope to the full extent permitted by law.

What is claimed is:
 1. A method executable by a computing systemincluding one or more processors and one or more memories, the methodcomprising: collecting, using the one or more processors, demo metadataand configuration data for a new product demonstration from a demoapplication being executed by a client device; for each of a pluralityof features of the new product demonstration, presenting, on a firstdisplay device, a digital form via the demo application to a user forcompletion, the digital form including an option to upload contentsegments, the content segments including short version videos and longversion videos each describing a given feature of the plurality offeatures of the new product demonstration; receiving, using the one ormore processors, demo data for each of the plurality of features of thenew product demonstration, the demo data including a title, adescription, a short version video of a first length, and a long versionvideo of a second length for each of the plurality of features of thenew product demonstration, the short version video describing aparticular feature at a first level of detail and the long version videodescribing the particular feature at a second level of detail; storing,using the one or more processors, the demo data in a non-transitory datastorage device; receiving, using the one or more processors, a requestfor the new product demonstration from a particular viewer via a secondinstance of the demo application; generating, using the one or moreprocessors, a customized version of the new product demonstrationspecific to the particular viewer by at least: querying, using the oneor more processors, the non-transitory data storage device for contentsegments in the demo data associated with the new product demonstration;for each feature of the plurality of features of the new productdemonstration: determining an interest level of the particular viewer inthe feature, and selecting one of the short version video and the longversion video for the feature as a content segment demonstrating thefeature based on the interest level of the particular viewer in thefeature, the interest level of the particular viewer being matched witha level of detail of the selected one of the short version video and thelong version video for the feature; and arranging, using the one or moreprocessors, the content segments selected for each feature of theplurality of features into a demo data file of the customized version ofthe new product demonstration; and presenting, on a second displaydevice, a graphical user interface comprising a media player, the mediaplayer including a content region displaying the customized version ofthe new product demonstration to the particular viewer includingdisplaying the selected short version video or long version video to theparticular viewer.
 2. The method of claim 1, further comprising:generating, using the one or more processors, embed code for embeddingthe new product demonstration in another application; and providing,using the one or more processors, the embed code for presentation to theuser.
 3. The method of claim 1, further comprising: receiving, using theone or more processors, survey response data input by the particularviewer from a non-transitory information source.
 4. The method of claim3, where generating the customized version of the new productdemonstration includes: generating, using the one or more processors,the demo data file using the content segments, the demo data filereflecting the customized version of the new product demonstration thatis customized to the particular viewer based on the survey responsedata.
 5. The method of claim 3, wherein the survey response datareflects the particular viewer's interest level in each of the pluralityof features of the new product demonstration and generating thecustomized version of the new product demonstration based on the surveyresponse data input by the particular viewer includes selecting contentsegments to include in the customized version of the new productdemonstration based on the particular viewer's interest level in each ofthe plurality of features.
 6. The method of claim 3, wherein theparticular viewer is involved in purchasing products associated with thenew product demonstration.
 7. A computer system comprising: one or moreprocessors; and one or more memories storing computer logic that, whenexecuted by the one or more processors, cause the computer system toperform operations including: collecting, using the one or moreprocessors, demo metadata and configuration data for a new productdemonstration from a demo application being executed by a client device;for each of a plurality of features of the new product demonstration,presenting a digital form via the demo application to a user forcompletion, the digital form including an option to upload contentsegments, the content segments including short version videos and longversion videos each describing a given feature of the plurality offeatures of the new product demonstration; receiving, using the one ormore processors, demo data for each of the plurality of features of thenew product demonstration, the demo data including a title, adescription, a short version video of a first length, and a long versionvideo of a second length for each of the plurality of features of thenew product demonstration, the short version video describing aparticular feature at a first level of detail and the long version videodescribing the particular feature at a second level of detail; storingthe demo data in a non-transitory data storage device; receiving, usingthe one or more processors, a request for the new product demonstrationfrom a particular viewer via a second instance of the demo application;generating, using the one or more processors, a customized version ofthe new product demonstration specific to the particular viewer by atleast: querying, using the one or more processors, the non-transitorydata storage device for content segments in the demo data associatedwith the new product demonstration; for each feature of the plurality offeatures of the new product demonstration: determining an interest levelof the particular viewer in the feature, and selecting one of the shortversion video and the long version video for the feature as a contentsegment demonstrating the feature based on the interest level of theparticular viewer in the feature, the interest level of the particularviewer being matched with a level of detail of the selected one of theshort version video and the long version video for the feature; andarranging the content segments selected for each feature of theplurality of features into a demo data file of the customized version ofthe new product demonstration; and presenting, on a second displaydevice, a graphical user interface comprising a media player, the mediaplayer including a content region displaying the customized version ofthe new product demonstration to the particular viewer includingdisplaying the selected short version video or long version video to theparticular viewer.
 8. The system of claim 7, wherein the computer logic,when executed by the one or more processors, further causes the computersystem to perform operations including: generating embed code forembedding the new product demonstration in another application; andproviding the embed code for presentation to the user.
 9. The system ofclaim 7, wherein the computer logic, when executed by the one or moreprocessors, further causes the computer system to perform operationsincluding: receiving survey response data input by the particular viewerfrom a non-transitory information source.
 10. The system of claim 9,wherein the computer logic, when executed by the one or more processors,further causes the computer system to perform operations including:generating the demo data file using the content segments, the demo datafile reflecting the customized version of the new product demonstrationthat is customized to the particular viewer based on the survey responsedata.
 11. The system of claim 9, wherein the survey response datareflects the particular viewer's interest level in each of the pluralityof features of the new product demonstration and generating thecustomized version of the new product demonstration based on the surveyresponse data input by the particular viewer includes selecting contentsegments to include in the customized version of the new productdemonstration based on the particular viewer's interest level in each ofthe plurality of features.
 12. The system of claim 9, wherein theparticular viewer is involved in purchasing products associated with thenew product demonstration.